Tuesday, February 21, 2012

Amazon Software Engineer Intern Interview : What To Expect

Interview length: Two 45 minute back-to-back interviews
Preparation given: The evening before, the morning of

I had an on-campus interview with Amazon yesterday. The recruiters live up to their reputation. The interview felt more like a test rather than a standard "why do you want to work for us, what will you bring us" questionnaire. I spent the day before brushing up on terminology and reading other peoples' stories on how their interviews went. Every interviewee signs a non-disclosure form so I cannot share the questions that I was given, but I can say a few things about the process to help you.

First, you need to brush up on your knowledge of com sci courses- everything ranging from digital logic, discrete mathematics, to data structures. These are all areas that they want to test their future hires to make sure they understand. You  don't need to know every single data structure out there, but avoid the mistake that I made; for some reason, I went into the interview thinking "data structures" referred to the data structure defined in Java. Data structures refer to any models that handle data; i.e. Sets, Trees, Maps, Queues, etc.

Second, know algorithms and how they work. Runtimes and Big O notation are very important to know. You will more than likely be tested on your knowledge of these. I perceive Amazon to be a company seeking out the best time-constraint algorithms out there, so naturally, they want to know if you can solve problems with algorithms that run fast.

There are a few areas of error that I should have been more careful on , but I wasnt. Namely, the second interviewer gave me the same code question to solve as the first interviewer. Not thinking, I said, easy, you do it like this. Im sure that will come back to haunt me as I am not given an offer! I wasn't sure if it was some sort of test by asking it again or not- you'd think they would have coordinated who would ask what questions.

The 45 minute interviews go by pretty fast. Sooner than expected, the interviewer will say that time is up, and you will either move to your second interviewer, or finish for the day. 

The interviewers are not like normal interviewers, in the sense that they dont care so much who you are as to what you know. During the interviews, they want answers. You either answer correctly or you dont. They helped me to an extent in areas that I had forgotten some of the terminology with- but Im sure that reflected negatively in my review. When you give an answer- make sure you know it works. They will not hesitate to dissect your answer to make sure you fully understand what you are talking about.

For example, if you write an algorithm that checks if the parameter int is an even integer greater than 0, remember to ask yourself these questions:
What are different ways to test this method? Different values for the parameter? How does the algorithm handle them? 
Is this the simplest way to solve the problem? What alternative implementations could be done and how do they compare in efficiency?
Another thing to note is, you will be coding under pressure. You will be asked to give solutions to problems on the spot, whether you visualize and repeat orally, or write it down on paper. What really irked me was the fact that no time limit was specified or general amount of time to spend on it. I guess they assume everyone to have a solution within minutes of starting. Then again, the problems are not too challenging, so you shouldn't have to take any longer to figure them out.

My advice: Treat this interview like a midterm exam. Starting to prepare for it the night is a bad idea. Do as many simple algorithm questions as you can - writing code to solve problems. Write the code out or try and visualize it, as you are expected to do one or the other during the interviews. Personally, Ive never been a visualizer with code. They dont mind if you chose one item over the other. There are a ton of websites out there where you can do test problems (e.x. ) , and even more sites that offer problems with solutions.

After the interview: When "interview mode" was off on the interviewers, they were very friendly individuals. Not to say they werent during the interview, but there was a clear change in behavior from professional to relaxed and casual. In discussing their own experiences, they only had raving things to say about Amazon. They give you time to ask questions about the company. If you feel comfortable with the interview thus far, ask some general questions, like "What type of work do interns normally do over the summer?" or "what made you choose to work for Amazon?" and "Have you ever interned with Amazon?"


Post a Comment