Applied online through their career website. Got an email from the recruiter the next day. She set up an online timed coding assessment. The questions were:
1) Given an int number in bits, format it into exactly 3 digits (with a decimal) and add a G for gigs, M for megabytes K for kilobytes and B for bytes.
2) Given two arrays of integers, create a third array with the element in each position in the first array multiplied by every element in the second array except for the element at the same index in the second array.
Passed that. On to phone screen. Questions straight out of Cracking the Coding Interview (book):
1) Rotate a 2D array 90 degrees clockwise, in-place without using a second 2D array
2) Design a chat server
Flew out to Amazon in Seattle:
First Interview) Given an array of integers sorted in ascending order, return a list of all elements that have the difference of 2 (for example 2 and 4, or 5 and 7).
Second Interview) Behavioral. Tell me about the most challenging task. Hardest bug.
...Lunch break
Third Interview) Given a bitmap, find the largest size of adjacent 1's.
Fourth Interview) Given a sorted array, return a set of all ranges in the array. For example [0,1,2,4,6,7,8] has ranges 0-2, 4-4, and 6-8.
Fifth interview) Design a furniture store. (It was very hard to understand the girl interviewing me, not because she had bad english, but because she just wasn't able to articulate what she was asking. She was obviously new and nervous).
Sixth interview) Design an airplane tracking system.
Got an email the next week (Interview was Friday, got email following Wednesday) that I did well with the simple solutions and got everything right, but struggled with the more difficult solutions, which I should have gotten easily given my years of experience. So no offer.