Before you can sit for the onsite exam, you must pass the amazon coding interview. Please check this blog on how to pass the amazon coding test.
I was able to successfully pass the Amazon exam in my second attempt. It was a very challenging and refreshing experience. In this blog, I am sharing what I did to prepare for the exam.
The on-site interview has four separate interview sessions, done by four individual interviewers. Each interview should take about 55 minutes.
Out of four interviews, three will be algorithmic questions. One will be a system design question.
For Algorithemic questions, you will have to write your code on a paper or on a whiteboard. You can use any programming language. You will have to provide the runtime and/or memory complexity of your program. You will have about 40 minutes to finish your question. If you complete it early, the interviewer may ask you a different question.
Same goes for the design question. You have to draw the design diagram on the paper/whiteboard and explain your question to the interviewer. Similarly, you will have about 40 minutes to complete the question.
Amazon is very serious about its leadership principles. At the end of each interview, you will be asked some questions about Amazon Leadership Principles. This will take about 10 – 15mins.
Preparation – Algorithms
Basically, follow the same set of preparations that I described here for the coding exam.
Preparation – Design Question
Design question can be very challenging because of the ambiguous nature of it.
These questions can be of two flavors. Either it can be a very high-level question like “Design the Netflix”. Or it can be quite a low-level question like “Give me a class diagram for a Table”. So either you are designing a very complex system with high granular modules. Or you are designing a very simple system with very modules with low granularity.
To prepare for this exam again you have to practice a lot. Do sample amazon design questions available online. Try to glance through SOLID Design principles. Key to pass this interview is to be able to justify your design trade-offs to the interviewer. You don’t have to present your solution with AWS, or any cloud solutions for that matter. Use whatever technologies you are familiar with should do.
Preparation – Leadership Principles
You can read about the leadership principles here. Read each one of them and try to absorb the essence of every principle. Then try to think about your past experiences where you had to apply these principles. I recommend you to prepare two examples for each of the leadership principles from past experiences.
During the Interview – Think Out Loud
Always maintain good communication with the interviewer. Ask questions regularly. Also, try to think out loud. Explain your thought process to the interviewer. For a particular question if you can think of two or three solutions, explain all the solutions to the interviewer. And tell him what you think the best solution and why.
If the questions are ambiguous, clarify all the ambiguity with the interviewer. You may be able to make some assumptions to simplify the problem. If you are going to make any assumptions, tell it to him.
Use Language Provided APIs
You can use any language-provided library for the algorithmic questions. This is highly encouraging because it saves your valuable time. But if you are going to use any API / Data structure, you should be able to explain the interworking of them to the interviewer probably with the complexity.
For leadership questions, you will be asked about one of your past experience. And you will be asked lots of questions from different angles of the situation. It will be very hard to maintain a lie; so be honest and truthful.
One Screwup Doesn’t Matter Much
Also, all interviewers have a vote on you. So if you screwup one interview, don’t give up. Give your best shot to remaining interviews.
Other Recommended Readings