I received an email through our school's CS mailing list that Amazon was recruiting. I submitted my application online. Didn't hear back for a month. I sent one of the recruiters a follow up email a month after applying, and received a phone interview request shortly after.
I had two phone interviews scheduled back to back.
My first phone interview was over a slightly bad connection, and also the interviewer's accent was slightly difficult to understand (I had to repeatedly ask him/her to repeat him/herself). However the interviewer was very amicable. It ended before the scheduled 45 minutes. Asked one major programming question: Find the nth to last element in a linked list. Several runtime and concept explanations. The only question I did not know: What is the difference between a map and a hashmap?
My second phone interview went considerably better. Connection was a lot clearer. Asked 3 solid programming questions. They were pretty basic: Find the largest number in an array, find the largest depth of a binary tree, find the sets of integers in an array who's sum equals N. Also asked a lot of concepts and run-times for data structures and algorithms.
I thought they both went extremely well, and I was said that I would find out my results 1-2 weeks after. I followed up about twice around the 1.5-2 week period, but I did not receive a response.
I sent another email telling them my deadline for another offer (as it was nearing), and I receive a call from recruitment in the same day offering me the internship!
Overall it was a very rewarding experience, however it was very long.
Good luck!!