The process took 1 day. I interviewed at Amazon (Seattle, WA) in Nov 2011
Interview
I was selected to bypass a phone screening and attend an on-site interview with a large group of other interviewees (though the interviews itself were on an individual basis). The interview day consisted of 4, 45 minute technical interviews each conducted by a different interviewer. Coding on the whiteboard is required (or sometimes on paper), and each of the interviews you are given a complex coding question that you must solve in front of them. These questions may be relatively simple if you remember all of your algorithm knowledge from college very well, otherwise you must go in with a significant knowledge of trees (binary and binary search, etc), data structures in general, searching and sorting algorithms, object oriented programming, just to name a few.
Interview questions [1]
Question 1
Given two very large binary trees T1, with millions of nodes, and T2, with hun- dreds of nodes, create an algorithm to decide if T2 is a subtree of T1.
I applied through college or university. The process took 1 day. I interviewed at Amazon in Dec 2011
Interview
Called at the exact minute and immediately started technical questions. Interviewer was asking for the basic layout plan of the program. I didn't have to read any specific lines of code. You can ask questions at the end.
Articulating your thoughts are most important here. You can have a few minutes to think about the layout. So I would recommend having a sheet of paper in front of you, draw out what you need and spend the rest of your time thinking about how to translate that picture through the phone. (I did not articulate well, so I had to go over what I said a lot)
I applied through other source. The process took 2 days. I interviewed at Amazon (Seattle, WA) in Nov 2011
Interview
The interview had all of the normal formalities. Some friendly chat, a lunch, talk about the area and the policies at Amazon. Interview questions were almost exclusively about working with high performance data structures - hashes, maps, tables, trees and the like. All questions inevitably led to "how would you do it faster", which really meant "how would you make it more scalable". Being able to solve the problem in O(n) time or better is key. In short, be adept with the standard data structures and using them optimally. It involved writing almost all of the functions on a whiteboard.
Heuristics were brushed upon briefly, only to lead to "okay, now that you've done that - how would you do it faster?".
There weren't any questions about working with others, design processes, maintainability, past experience. They showed no interest in any portfolio content.
They were happy to answer questions about what it's like to work there, but I detected some dishonesty about it - it was not as good as they made it sound. Individuals and teams are "on call" 24/7 for any bugs that are found in their code. Other sites cite Amazon for poor home/work balance. Managers didn't seem to understand their leadership role. While the newer projects and cutting edge algorithms/designs obviously excited the engineers, it seemed like there was a lot of tension. Conversely, the workplace was riddled with fun posters, decor, sticky notes, nerf guns and dogs.
I feel I did relatively well in the interview - I was able to clarify their deliberately vague requests and produce a quick sample/algorithm, and then refine it to what I believed to be optimal (which came out to O(1) or O(n) in my cases).
I was honest that I had not sought to work for them (they found me), that I needed to consider Seattle a bit more before moving, and that I had little experience in working on large server/database applications. I probably gave off a lot of enthusiasm for areas of software that are of little interest to Amazon.
They contacted me back and said they were not interested in continuing. Neither was I.
Interview questions [1]
Question 1
You have a sentence that has a grammatical error, and the sentence has been broken into a parse tree. The grammatical error is because of an interaction between two words. Find the minimum complete phrase that includes the grammatical error.