I applied through an employee referral. The process took 1 day. I interviewed at Amazon (Seattle, WA) in Nov 2011
Interview
A friend put in my resume and I was contacted by phone about a week later by an HR rep. She was very short and was interested in only setting up the interview. She was reluctant to discuss the position or company.
On the day of the interview the interviewer called me a few minutes late. He was friendly but seemed hurried. He asked me some questions about my most difficult project and the program I was most proud of. He asked some technical questions related to projects I was working on. He seemed uninterested in my work history.
After about 10 minutes of talking he sent me a link to a window and gave me a programming assignment. I asked some follow up questions and began to write out an algorithm on a notepad nearby, talking through my thought process all the while. After 2 or 3 minutes he insisted I stop writing and begin coding. I feel like planning first is better but he was running the show.
Know your data structures by heart and be able to code them in your sleep. Terminology is important too.
Interview questions [3]
Question 1
What is the computational complexity of graph isomorphism
I applied through other source. The process took 1 day. I interviewed at Amazon (Seattle, WA) in Dec 2011
Interview
I had the interview with Amazon yesterday so still waiting to hear back about a second interview.
The interviewer was very friendly and accommodating (I had bad phone signal) and we started off easy with him asking me all about previous positions on my resume. He wanted to know what projects I was proud of and which ones were most difficult.
We then moved into talking about common scenarios you might encounter as a developer such as finding areas of code which are slow and how to fix them. He wanted to know details of the debugging process starting from when a manager comes to you and says "This page is too slow" for example.
After that he wanted me to design a class structure for a furniture factory. There was already a simple (but flawed) structure in place and I was asked to improve it based upon various upgrades they wanted to implement. If you know your OO you'll be fine, it was mostly common sense stuff.
It ended up with the data structure/algorithm question which I was asked to describe in detail then code using an online collaboration tool so he could see me typing. The problem was writing an algorithm to detect when two linked lists intersect. The key I think is to keep talking and make sure you are explaining what you're thinking. He wanted me to improve the initial design and so I did and he accepted it as a good solution. We then talked a bit about Amazon, Seattle and what I'd be working on if I got the job.
Overall I think it went well and as long as you're up on details on your resume, OO and data structures you should be ok.
Interview questions [1]
Question 1
Write an algorithm to determine if 2 linked lists intersect