I applied through a recruiter. The process took 3 weeks. I interviewed at Amazon (Seattle, WA) in Jul 2009
Interview
An external recruiting consultant put me in touch with the company and suggested 2 positions that matched my profile. I had phone conversations both with the recruiting consultant and with the actual Amazon recruiter. The questions were generic about the kind of work I was doing and why I wanted to leave, why I was interested in Amazon, if I needed a work permit, etc.
Then I had a first technical interview via phone with a dev from outside the hiring teams. Apart from questions about Java, she asked me to code some graphics algorithm - to display a certain pattern on the screen. I found it funny that I had to write the code on paper and read it out loud, for her to write it down !? (Maybe these days they have some form of shared editable document such as collabedit).
The second technical phone interview asked questions related to the position applied for, trying to assess if I had the right background and if I was familiar with the problem domain. We finished with some OO design - I was asked to design the elevator system for a building.
Finally, I had 2 on-site interviews, with the teams I was interested in. In both cases I had discussions with the hiring manager about the specific charge of the team and the current/future projects and plans. The 1:1 interviews with the devs were not directly related to the team's area (with the exception of one request to design a "Subscriber - Broker - Publisher" architecture (a) running on a machine; (b) running on a cluster) but rather design and implementation of "real" (or realistic) problems (resolve a puzzle; analyze the patterns usage of a parking area; find contradictions in a person's set of statements about a drag race).
So the problems were very practical and required some design, as well as implementation or sketching of an algorithms, rather than "textbook problems" such as traversing a tree or reversing a linked list.
The place looked quite frugal (the desks were cheap wooden desks) and chaotic (I was told that each team decides what language and environment to use, and what versioning system.
Interview questions [1]
Question 1
Design a "Subscriber - Broker - Publisher" architecture (a) running on a machine; (b) running on a cluster. Write the code for the 3 classes.
Details: there are Events, specified by an "event type" and a blob of detailed info. Each subscriber subscribes with a Broker for a certain event type that it wants to get. Subscribers send events to the broker, and the relevant subscribers need to be notified.
Interviewed for silicon team. Have only been asked about the domain specific knowledge in 1st round and system design in 2nd round and C coding in 3rd round.
The interviews were 50 mins each.
The phone screen went longer than expected, focusing heavily on implementation details. The interviewer really grilled me on my approach to a Least Recently Used (LRU) cache, asking how I'd combine a hashmap with a doubly linked list. I felt well-prepared since I had gone through system design examples on PracHub, which made me comfortable discussing eviction policies. The later rounds included more technical questions and behavioral interviews, but in the end, I received an offer, though I ultimately decided to decline. Overall, I’d say the process was average, with solid questions.
Interview questions [1]
Question 1
Design and implement a Least Recently Used (LRU) cache supporting get(key) and put(key, value) in O(1) average time. Walk through combining a hashmap with a doubly linked list, eviction policy when capacity is exceeded, and how you'd extend it to handle thread-safe concurrent access.
Recruiter reaches out after applying through Amazon careers, no referral. Had an initial OA, then after a month had four rounds in two days - three coding one system design. Each round had 30 min behavioral and 30 min coding.
Interview questions [1]
Question 1
Questions were mainly hashmap, sliding window and interval related.