Developer applicants have rated the interview process at Amazon with 3.5 out of 5 (where 5 is the highest level of difficulty) and assessed their interview experience as 33% positive. To compare, the company-average is 63.8% positive. This is according to Glassdoor user ratings.
Here are the most commonly searched roles for interview reports -
I applied through a recruiter. The process took 6 weeks. I interviewed at Amazon (Seattle, WA) in Oct 2011
Interview
3 Phone Screens + 1 in-house interview day
First phone screen: Development Manager position. I felt like I did good enough to warrant further consideration, but I knew I wasn't likely the best software manager candidate they ever interviewed. Interviewer was professional and friendly. He indicated there would be more screening.
Second phone screen: Senior Development Manager position. Interviewer was a very senior director level manager of a large organization within Amazon. When answering questions about about project scheduling and live site issues, I failed to realize that Amazon's highest priority is keeping their existing services working perfectly and that trumps any new development. If I had recognized that part of their business before the call, I may have given more impressive answers.
Third phone screen: Software engineering (individual contributor position). This was a very comfortable interview for me. Mostly all technical and programming questions. I knew I had done well when I got off the phone.
Between each phone screen, a few weeks would go by without hearing anything. I would wait at least a week and then politely email the recruiter about next steps. Each time, the recruiter would apologize for the delay and setup the next phase (which would usually be for the subsequent week). Treat those Amazon recruiters nicely - Amazon is going through a huge growth spurt right now and their recruiters have way too many positions to fill to give anyone individual attention. So if you get anxious, wait at least a week, and send very short and professional mails to the recruiters asking about next steps. They are good about following up to any email you send within a few days.
In person interview: 6 hours of interviews. This included 4 separate hour-long interviews of coding and design problems on the white board. I felt like I did very well.
Interview questions [1]
Question 1
I won't give away the questions asked, as that would violate the NDA I signed. (Because I might actually want to work there some time down the road...)
But I will say this: Almost every coding and design question asked has been posted on Glassdoor. While I am a very experience programmer, I recognized long before the interview process, that I would need to put in some long hours preparing for this company. I spent a lot of time spent refreshing myself on data structures and applying that to problem solving. I went through like fifty Amazon programming questions posted here. I copied each one down, and made a note of the number of times an equivalent variation of that question was posted. Then I made sure I could solve each one with my own code. Extra attention given to the problems posted multiple times.
Prior to my interview, I had heard from many friends who interviewed at Amazon that they were asked at least one question involving a hash table. Amazon is famous for asking questions about hash tables. Either they ask about the hash table constructs in various programming languages (like Java and Perl, hash vs. map, etc..), or a coding problem where the hash table affords an O(N) or O(1) solution. So if you are asked a question that involves looking up a value in one array and searching for a corresponding value in the same or other array - the answer likely involves "use a hash table".
Also, Amazon quizzes candidates on their ability to recognize runtime ordering of the coding solutions. So know your "big-O" notation (e.g. O(N), O(N lg N), polynomial, exponential, etc...)
I applied through a recruiter. The process took 1 day. I interviewed at Amazon (Seattle, WA) in Nov 2011
Interview
A recruiter contacted me via email.
I chose a day where I could fly to Seattle and attend a day long interview process (There were 4 interviews, each 45 minutes long).
Before the interviews started, we had an informal lunch with some of their employees.
All of the interviewers were nice except one. The interviewer (some manager - which is even more shocking) then became so unprofessional to the point that I felt like yelling at him and leaving the room. Thankfully, there was at least one professional in the room (i.e. me) and I kept working at the problem till he finally got out.
Was given a set of fields. Was asked to figure out the best data structure to store this data in the form of a list and at any given point, retrieve the first 5 (decreasing order) of field values.