I was contacted by Amazon's internal recruiter through LinkedIn. The recruiter describer the general responsibilities of the position, but was very vague about specific skillsets they are looking for.
First step was a phone screen. I got a call from one of the Amazon's developers and used online notepad-like tool to write a simple program to manipulate strings. It could be done in any language of my choice. Although the online tool did not compile code nor had checks or intellisense, the program was expected to have valid syntax.
Several days later, I got a response inviting me to come in for an in-person interview at the Bellevue office. Flight and hotel was arranged and organized through Amazon's partner company. All expenses, including meals and transportation, were reimbursed.
In-person interviews took 6 hours, which included 5 one-on-one sessions and a lunch break with an employee. All of one-on-one session took place in the same small conference room and consisted of behavioral and coding/architecture questions, both within the same interview.
Behavioral questions are fairly typical "tell me about a time when X happened" or "how do you deal with Y?", but there are a lot of them (2-3 per person). The candidate is expected to go into details, but it seems like some of the interviewers were rather indifferent. One of the interviewers could not comprehend a situation in which poorly tested code was pushed to production and did not work properly. There were several questions about fellow employees, including conflict resolution, critique and praise. It felt like the interviewer was looking for very specific answers or attitudes, not considering candidate's previous employers' company structure and culture.
Coding questions ask to solve one or several arbitrary problems in a limited time, usually around 30 minutes. Here's the worst part of the interview: the solution has to be written on the whiteboard line-by-line using valid syntax using the language of your choice. Instead of using time to discuss more efficient approaches to the problem (which I though is the key point of these questions), most of the interviewers asked to write out a brute-force or O(n^2) solution first. I think the fact that I can write a double nested loop should have been evident from the initial phone screen, unless all of these have been a test about premature optimization. One interviewer was visibly frustrated that I suggested but was unable to write out a solution that uses self-balancing binary trees in remaining 10 minutes.
One interview question was about architecture, asking to design a massive distributed and fast system to do X. The given requirements were very vague and I had to ask about constraints several times. After I was done drawing it on the board, the interviewer took a picture. I asked if this is their area of expertise and they said no.
Between the interviews, I was given a 1-hour lunch break with one of the employees. Lunch was paid for by Amazon, and it was a welcome break from interviewing.
Overall, the interview process was very streamlined, but I felt like Amazon's expectations were entirely different than my actual work experience, which was all clearly stated on my resume.