I would like to share a great experience I went through: the Amazon recruitment process!
Just a note before I start: If you are looking for specific interview questions, sorry, but you are in the wrong place (I rather look here). I had to sign a paper which obliges me to not disclose any details of the process. Anyway, I’ll try to share as much as possible and I’ll give you some pieces of advice on what to study if you are going to have the same experience.
Some time ago I found out that Amazon is building a Machine Learning team based in Berlin, so I thought: why don’t try? 🙂 And I sent my CV.
Unbelievably, two or three days later I got an e-mail from a recruiter which informed me that I was selected for a phone interview with a Software Engineer from USA. Wow! Quite a great opportunity!
The phone interview lasted a little longer than one hour, during which a very friendly Engineer asked me a lot of questions about algorithms, networking protocols, Linux shell and, in the end, to write some code. The coding questions went good! I solved both problems he gave me. On the other hand, I was a bit pessimist regarding the result of this first step because the more I was answering the networking questions, the more the guy on the other side of the phone went deep in the details which I couldn’t remember so well. I hung up the phone a little bit angry with myself for not remembering very well everything he asked.
Anyway, almost one week later, I got another e-mail from Amozon which informed me that the phone interview was positive and they wanted to invite me for a real on-site interview in Berlin. Wow… Really? I was selected for 6 hours of questions against six different Amazon Engineers! I ran to study immediately! 😀
The real interview was pretty exhausting! I had to stay in a room from 9:00 till 15:30 (with 30 min lunch break), meanwhile six different persons (I have to say all very friendly) came for one hour each. Five out of six were technical interviews with questions based on algorithms complexity, coding, OOP and some computer science fundamental. During these interviews I also got some questions regarding my curriculum and regarding my passed working experiences. The sixth interview was with a girl from the Human Resource. She tried to understand my leading skills and my ability to work in team.
I have to say that sometime I found those kind of questions harder to answer than the technical questions 🙂 ..so, don’t underestimate them and try to prepare something!
In the end of the day I was incredibly tired, but happy. Also because I could answer the most of the questions and I could code on the whiteboard all problems they gave me, but especially because I still cannot believe what I went through! I am working hard to become a good Software Engineer, and I am happy the world out there seems to be perceiving this! 😀
Now time for some study recommendations!
Are you going to be interviewed by Amazon? Then be ready to have a very good understanding of algorithms and data structures. You should know very well stuff like: hash table, linked list, array list, trees, etc. Be sure to be able to use them in your favorite programming language. Don’t forget to review the most important sorting algorithms like merge sort and quick sort. Be ready to write code without a compiler or an IDE. Practice on a whiteboard or on paper and be ready to argument about time and memory complexity of any decision you take. Be sure to recall how Internet and the web work (TCP, UDP, HTTP, DNS, etc.). Be ready on OOP concepts. Ah! Also some basic math could help! Understand what the Big O Notation really means and be able to prove it. Check your curriculum and be able to talk about any projects and skills you listed on it. And, as I said, don’t underestimate behavioral questions!
I guess that’s all! If you have any other questions, please feel free to write me! 🙂 See you guys!