The Amazon SDE Phone Interview
Interviews can induce some stress and some headaches, but if you can expect what’s ahead, you’ll be in much better shape. I hope to help others taking the interview to prepare and to remove some stress on people’s chest.
This is my first phone interview ever and it’s the first one for a full time job at Amazon as a Software Design Engineer (SDE). It happened 2 days ago, Friday 19th of May.
The interview
My interviewer called, introduced himself and promptly started the interview.
- What languages have you learnt in U of T? What tools to you use to program? What platform did you develop on?
- Having first scanned my resume, he first asked about a prototyping project i worked on. And seeing it won an IBM-sponsored competition, he asked what the competition was.
- Then he asked about an operating system project I listed. He asked what I did and what I’ve learnt. He asked if we actually implemented it (hell yeah… so many sleepless nights). And he went on by asking how to debug when developing an operating system.
- What’s the project you’re most proud of? And why so? Mine was online-marking tool, found at pyre’s past project page.
- Are you familiar with TCP? I honestly said that I didn’t know much except handshaking. He said it was fine and he re-assured me I was not expected to know it.
- Are you familiar with HTTP? I said I was, having written a basic web server, which I very briefly explained. He was interested in the web server, so I gave an explanation of the basic structure of my implementation. He asked about how I dealt with concurrency issues, but I didn’t. He then asked in general how to deal with concurrency issues.
After the first part of the interview was done, he gave more clarifications as to what he does at Amazon, and what exactly his group is responsible for. He talked about how this was just information gathering and there was no reason to be stressed. The second part could then begin:
- Give an algorithm that will allow you to find the Nth node from the end of a singlely linked list. We explored many solutions, ranging from the naive algorithm to using a stack to finally getting the solution which only requires one pass.
- Imagine you have a database that can only do 2,000 queries a second. Your web application gets 5,000 queries a second, what can you do to improve the situation? After asking him for some clarifications, he added: Imagine its a stock quote engine for NASDAQ and that the queries are about the top 100 stocks at closing.
- Imagine you have a big online storefront. Your webserver can only do 1,000 concurrent requests. Many people are visiting your website and you want to support 3,000 concurrent requests. What would you do? I asked for some clarifications, and he said: The limitation is computational power and not bandwidth.
- Any questions?
The questions period was the time I asked about things that I found interesting, as in, what kind of model they use for programming, software engineering practices, distributed computing and the like. His answers were interesting, in a nutshell what I learnt about amazon was this:
- They work in 2-Pizza teams, i.e. the team is not bigger than the number of persons that could be fed for a meal with 2 large pizzas.
- The models used for the software development cycle is different for each team as they are all very independent. My interviewer is a big eXtreme Programming fan himself.
- Formal requirement documents are produced when a project is requested to a team. Their “customers” are usually other groups within Amazon. That I think is very cool… nothing like a good technical req doc to get started on the right foot!
- Once Amazon acquires new talent, the little newb’s information is shared accross the whole Amazon.
- Amazon is one of the most knowledgeable companies about Distributed Computing.
The interview I think ended quite well and my interviewer said he was definitely going to recommend me to the recruiter for a second interview. Well, let’s cross our fingers =)
Sunday, May 21st, 2006 @ 12:11 pm
May 21st, 2006 at 7:18 pm
Yo Oli ki p dir… to banes interviews la parete mari tough! Congrats pou to graduation… pane trop gagne l’occasion coz ar toi online, travail p casse fesse, mais mo esperer tou corek cot toi… Bon courage et bonne chance pou to banes interviews!
Cheers!
Pat (o kas to pa p coner ki Pat sa, mo singapour la…:p)
May 21st, 2006 at 10:25 pm
Nice work Olivier, hope you get the job. If not, you can always fall back as a pro gamer
-Ian
May 22nd, 2006 at 2:01 pm
Have you considered registering your blog on Mauritius Blog Tracker?
Anyway, I hope you get called for a second interview.
May 23rd, 2006 at 12:27 am
heh good news i got the 2nd interview for next wednesday. I’ll post the questions then! =)
Thanks for the comments, it feels nice!
May 23rd, 2006 at 11:29 pm
I enjoyed visting your blog. Happy to learn about WEB 2.0.Nous parfois blier ki Amazon evoque ene la jungle a decouvrir avec boucoup possiblite tout en etant sauvage….un monde a decouvrir et a exploiter…
To blog tout en etant neat et sombre dans l ambiance, donc conservateur, contient pas sujet a la page!
bonne continuation…
May 3rd, 2007 at 1:57 pm
What is the solution to question on interview 3 related to sorting the array on o(n)?What about the one with the file?
May 15th, 2007 at 10:09 pm
Hello Ariana,
The solution to the O(n) array sorting problem is to be using a memory trade off for running time. You should check out bucket sort as well.
For solutions, please check out the comments in the article with the questions at http://www.oliyiptong.com/blog/2006/05/30/amazon-sde-in-person-interview/#comments
October 28th, 2007 at 3:51 am
Hey Oli,
hope u r doing great at amazon… but can u please tell me….
what are the answers for the database cant do more than 2000 concurrent queries.. and webserver to support more than the number of concurrent requests it could do…questions please…