I submitted my resume to several open positions on their website. Within a couple of days I was contacted by a recruiter who wanted to set up a phone screen for a position that I actually had not applied to.
The phone screen problems consisted of a fairly simple array manipulation problem and a word game problem that I solved with a trie-like structure. The interviewer asked for ways my solution to the word game could be optimized and I gave him one which he seemed to like.
I was expecting to have another phone screen, but the next email I got from my recruiter was an invitation to fly to Seattle to interview on site. This email requested a bunch of information for booking the trip as well as what my expected salary and current salary were. I declined to answer the question about my current salary (which didn't seem to be a problem), but for the expected salary, I checked here for what their typical range was for the position I was being considered for and gave them one number that was somewhere in the 85th or 90th percentile of that range.
I signed an NDA for the on site interview stuff, but I will say that the book "Cracking the Coding Interview" by McDowell was EXTREMELY helpful. That book explained their entire interview process and had several examples that were similar to the questions they asked both in the phone screen and the on site interviews. One thing that is peculiar about Amazon's interviews is that they ask some behavioral questions that weigh pretty heavily in the decision-making process. When answering the behavioral questions, give answers that tie back into their core values (they'll send you information about their core values if you are invited on-site). "Cracking the Coding Interview" has some good examples of those behavioral-type questions as well as some good tips on how to prepare for them.
A good portion of the people I interviewed with had pretty thick accents, which made things a little more difficult. They all seemed pretty intelligent and very down-to-earth. Nobody seemed put off that they had to do the interview or anything, and they all claimed to really enjoy working for Amazon.
I was called the day after I interviewed on site and was told that they would be making me an offer. At that point the recruiter (which was a different recruiter than the one that initially contacted me, but was the person that set everything up for the on-site interview) asked me what my current salary was and told me what I could expect in terms of salary and bonuses. They had an official offer finalized within about 3 days.
The total time from submitting my resume online to accepting an offer was only about 5 weeks, so it was pretty quick.