I applied through a recruiter. The process took 2 weeks. I interviewed at Amazon (Seattle, WA) in Oct 2012
Interview
Their recruiter saw my resume on dice.com and email me to set up a phone interview. The interview was not difficult. The manager first asked some questions about linux, command line tools, then simple questions about list, hash table, tree, such as what is the complexity to access an element in a BST, how about hash? After that he post two coding question on a whiteboard. One question was to calculate X^Y where X and Y are positive integers. Another question was to find the first unique character in a string. I failed in the interview because I did not get the optimal solution in the second question, which I should've done better.
I applied through a recruiter. The process took 4 days. I interviewed at Amazon (Blacksburg, VA) in Oct 2012
Interview
I turned in my resume at a career fair on campus. When I was talking with the recruiter at the career fair, I was asked to do some coding. Then I was contacted by a recruiter a week later. I had 4 interviews in total and they were all on campus.
My first interview was mostly theory questions about stacks, heaps, processes, and threads. I was also asked to do a simple coding problem too. That evening I received an email saying I passed the first round and they'd like me to come back 2 days later for 3 more interviews.
The interview questions were quite challenging. I don't think I did very well at the second interview, which was writing a code that takes a float and output a string representing a price in the format $xx,xxx.xx. I managed to produce a working piece of code but with a lot of help from the interviewer so I think if you're stuck, you should ask for hints and they don't mind it.
I was more successful at the third interview in which I was asked solve two problems, again the programming language was my choice.
The last round was different from the previous three. I was given a problem and was asked to describe an algorithm to solve it. No coding required. In fact when I started to write down some code I was reminded that I only need to describe the algorithm.
Optimization was a big deal because I was asked to analyze running time of my code and to optimize them, especially at the last round.
After the last round, I was asked if I need to know their decision by any specific time. I said I'd like to know their decision before then end of the year. The interviewer smiled and said it wouldn't take that long. Typically it'd take 2-3 weeks. That's why I was so surprised and excited when I got an email from them later that day announcing I was offered the position. So basically it took less than 4 days for the entire process.
Interview questions [1]
Question 1
Given a singly linked list of characters. Determine of they form a palindrome.