- Work/Life Balance
- Culture & Values
- Career Opportunities
- Comp & Benefits
- Senior Management
I have been working at Amazon full-time (More than 3 years)
Smart people, strong mechanisms, fair compensation, you’ll learn
Bar raising culture can be a challenge for some
I applied through other source. The process took 4+ months. I interviewed at Amazon (Seattle, WA (US)) in May 2013.
Called out of the blue, asked if I'd be interested in interviewing. Still not entirely sure how they got my name. Had first phone interview the next week, asked no personal questions, all technical in nature. Total of 3 phone interviews and an in-person trip out to Seattle.
Took about 4 months start to finish. The people in the in person interview were wonderful. Very smart, laid back, and understanding. Got lunch, small tour of campus, and learned what I'd be doing. Got the offer 2 business days after the in person interview.
Sadly, I signed a NDA and I respect the terms of that. As such, I can't give you any specific questions, but I'll gladly give you the best advice I have.
Phone Interviews :
Phone interviews are sucky by nature. Coordinating a call from west to east coast alone is painful, add the fact that phones just take away the benefits of body language, and just make it harder to hear, and you've got a recipe for disaster. But fear not! Here are some helpful hints, some of which are obvious, some of which are not.
1. Get ready ahead of time. I just mean, get to the area you'll be doing the interview beforehand. I'd recommend an hour or more, just to get your nerves ready. Breathe, get used to the surroundings, and get everything laid out ahead of time. Which brings me to...
2. I know it's a "programming" interview, but for the love of all things good, have a pen and paper ready and at your disposal. Bring a backup pen. Much like a printer, the pen will fail at the worst possible time. You may also need a laptop, as I was asked to do "on the fly" programming. But close anything and everything distracting. Speaking of...
3. Pick a spot where there are no distractions. You'll want your undivided attention on this interview. Don't have BookTweet or FaceSpace or MyGram or that crap open if you have a laptop. And I personally wouldn't pick a public space, you never know when an annoying parent will put their screaming child right beside you.
4. Breathe. Just breathe. Take a moment, stretch, and remember you got this. If you have trouble hearing, don't be afraid to ask again. Don't be afraid to say you don't know. Do as for clarifications, and state assumptions up front. Always re-state the problem as you understand it.
As for the content : For the love of God, know what a time complexity is, and how to determine it for any and all code you write. Know the time complexities of all sorts. Know all data structures, how to use them, and properties of each. (Insertion time, deletion, etc) Generally know what heck you're talking about. But don't talk too much. You don't want silence at any point really, but you certainly don't want to let the interviewer not get a word in. Know graph theory, tree theory, and all the fun stuff associated with more "complex" structures. Understand what your language does behind the scenes, as far as GC and compiling go. Know how your language use internal structures to manage the code/objects you write.
As a recent grad, there wasn't much room for negotiation.