I have given the Amazon interviews 3 times, twice for an internship and once for full time, for the role of a Software Engineer. Having bagged both internship and full-time offers, here are some tips for those who dream of working for Amazon. If you are interviewing for a data science role, these tips should be helpful to you for cracking the data structures/algorithm part of your interviews, and you’ll also have to prepare for SQL and data science questions.
This is the hardest step in my opinion. Amazon gets thousands of applications per year, and only a handful of those people get a chance to interview for them. However, compared to other companies from the Big 5, Amazon seems to give a lot more people a chance to interview, even in these COVID times, based on my personal observation.
- Apply online. Try applying via LinkedIn or from their careers page. This is the least effective method to bag an interview, but it does work (this is how I got an interview).
- Apply via a career fair. Try attending virtual conferences and apply in their or your school’s career fair for a better shot.
- An even better way would be to get referred. Please get a referral BEFORE applying, because once you apply, the referrals don’t work. This happened to me and I regretted it because I had a friend working for Amazon and could have easily gotten a referral. Here’s what he saw when he referred me.
- Lastly, cold email/message recruiters. Try reaching out to them on Linkedin and selling yourself.
There will be 3 online assessments, for both internships as well as new grad full-time roles. They are very similar, especially the first two rounds.
You will get a chance to give all 3 assessments regardless of how you perform in any one particular OA, for example, if you mess up the first one, you’ll receive the second one anyway. You will be promoted to an in-person round after these 3 based on how well you perform on all 3.
You’ll first receive an acknowledgment email from Amazon saying “We have reviewed your application for the XYZ position and would like to move forward with the next step of our interview process”.
You will then receive the first OA. Each OA will have a 5-day deadline, and the next OA will be sent to you 24 hours after completing the current one. Hence the online assessment rounds should take approximately 15–18 days maximum. You can ask for an extension for any assessment but I wouldn’t recommend that. Amazon tends to hire on a rolling basis and you might not get an offer solely because they have sent out the max offers and you’ll be put on hold, regardless of how well you perform. This is because they give out a lot more interviewing opportunities than their headcount requirement. This happened to me for the full-time role, and I received an offer letter 2 months after being put on hold. So my advice to you would be to finish the OAs and schedule the final rounds as soon as possible.
The easiest OA in my opinion.
Time: 20 minutes.
Languages — Java, C++, C
For each question, you will be given a problem and a small solution for it. The solution will have small bugs (it will compile, but won’t perform as expected). The bugs will be very minor (for example, some variable in a for loop incorrectly set) and easy to spot. However, the key to this round is timing.
You will have 2.5 minutes per question and a couple of extra minutes buffer, and that is more than enough time you’ll need to solve all problems. And you don’t have to prep for this round, just the fact that you are chosen for Amazon’s OAs shows that you are a good enough coder to find these bugs.
Tips for this round:
- Do not panic. The only way you’ll not perform well in this round is if you panic.
- Skip a question and leave it for the end if you spend too long on it.
- Run the code and look at the output instead of hunting for the bug in the solution directly. The output will give you huge hints on what is wrong in the code.
The hardest OA in my opinion. It has 2 sections.
The first section is Coding.
Time: 70 minutes
Languages allowed- Java, Python, C++, C, C#
One of the two questions will be easy and the other one can be medium or hard.
- Amazon has a huge tendency to repeat questions in their second OA, so if you do company-specific prep(which I do not recommend because it won’t make you better at interview cracking overall), you’ll find a ton of questions found online are asked to you. So even if you are someone who grinds competitive coding and doesn’t believe in company-specific prepping, I would surely recommend checking out Leetcode Amazon tagged questions or the questions here a week-ish before your 2nd round because there is a huge possibility that you’ll be asked one of these.
- The usual tip, regular practice on Leetcode, Hackerrank, or any of the other interview prep websites should help you crack this round. Here’s the plan I personally followed to get better at cracking coding interviews.
- Add comments to your code, especially if you do not pass all test cases. Amazon has real people reading and reviewing your code, and if you have a couple of failed edge cases, or if you have a solution very close to an optimal solution and not passing a few test cases because of lack of time, you might clear the round regardless, if your comments show that you knew how to solve it.
- Adding to the above point, making the code neat and readable is also important, so use good variable names, etc. for brownie points.
The second section is Workstyles Assessment.
Extremely easy, it’s like filling out a survey. Just be your authentic self, they’re trying to know you better and see if you’ll be a good fit. Make sure you read Amazon’s Leadership Principles beforehand so that you know what they care about.
The difficulty level as well as the type of questions for the first two rounds is the same for internship or full-time.
Time: They mention it’s timed 90 minutes in the email. But when I started it, it gave me 4 hours. Probably a bug, but it shouldn’t take you more than an hour.
This is a workplace simulator. You will be prompted with emails, videos, and instant messages from your virtual team members to solve various problems. For each scenario, you will be provided with some options of how to respond, asked to either rate the effectiveness of responses or select the best course of action. There will also be internal wikis, code snippets, and roadmaps.
There was a small difference between the internship and full-time OA in this round. In the internship, you are given a piece of code in the end by your virtual manager, and some logs, and asked to debug that code. This was not present in the full-time assessment. The language was Java only, so it might be a little inconvenient if Java is not your primary language. It was easy but tricky, and you could make silly mistakes if you weren’t careful.
After these three rounds, you have to wait to hear back on whether you have made it to the in-person rounds or not. I heard back within a week for the full-time position and heard back after 19 days for the internship. You never know when you’ll hear back, so stay patient.
- One, 45 minute long final round over zoom, with an Amazon Engineer.
- A question from your resume/past experience
- A couple of behavioral questions
- One Leetcode style medium/hard question.
The number of interviews depends on how well you perform in the Online Assessments.
If your OAs are perfect, 7/7 in OA1, pass all test cases in OA2, and a great fit as per the Workstyles Assessment as well as OA3, you’ll only have 1 final round. They will ask you about how you approached and solved the questions given to you in OA2. AS SIMPLE AS THAT. CAN YOU BELIEVE IT?! This has to be the easiest way to get a fulltime at a FAANG company.
Unfortunately, I did not fall into this category. So I cannot elaborate further about whether they ask behavioral questions (they probably do) etc. However, I can elaborate on the second category, having experienced it first hand.
If you either had minor mistakes in your OA1 or OA2 (failed one/two edge cases) or weren’t that good a fit as per the workstyle assessments, there will be three final rounds for you, 45 minutes each.
- Every round will have behavioral as well as questions from your resume/past experiences.
- There will be at least one System Design round, and one round with data structures/algorithm questions.
- If you solve your ds/algorithm question quickly, you’ll be given another one if time permits. Ideally, this should happen unless the very first question asked to you was very hard/detailed.
- There will be one “bar-raiser” round which will be harder than the other two. This round is weighted a lot more, and it is essential for you to perform well in this one. Your bar raiser interviewer has the power to veto a candidate out, no matter whether other interviewers like the candidate or not.
- Being a good fit is very important, apart from performing well in coding/system design. Go through the Amazon Leadership principles and prepare one situation/scenario that you will talk about for each principle.
- Format your behavioral answers in STAR format.
Situation: Describe the situation.
Task: Describe your responsibility/task list in that situation.
Action: Explain the exact steps you took to address it.
Result: Share the final result.
Tell me about a time you were under a lot of pressure. What was going on, and how did you get through it?
Situation: When I was an intern at Facebook last summer, I had managed to complete the intern project assigned to me 3 weeks before it was due. (notice the humblebrag — always find ways to sell yourself!). I was working with the privacy team, and since I had a lot of time left, I wanted to work on an Instagram task because I was fascinated by that product, being a heavy user of the app.
Task: There was a user query about ****(can’t mention here because of privacy reasons) on ****, internally, between Instagram and Facebook, and I decided to take over the task.
Action: I go into the technical details about everything I did here, including the steps I took, the number of people I reached out to. I would describe the numerous problems I faced because it was the first time I was interacting with the Instagram side of code. I would further elaborate on how my internship was ending soon and it was doubtful whether I’d be able to finish before my last date, which increased the pressure.
Result: I would describe how I successfully managed to finish the task, a few hours before my access was disabled on the last day. (!) I would then talk about the positive feedback my team gave for completing an additional task apart from my assigned project, and what I could have done to finish the task earlier, now that I know about all my mistakes.
After completing the final round, you’ll hear back in 7 business days. If you perform well, you’ll either receive the offer letter or be put on hold depending on how many offers they have given out already. If you’re put on hold, there is no guarantee you’ll receive an offer, it depends on whether people who did receive one deny it.
That’s all I have to say about the Amazon interviews. For article updates, submitting topic suggestions, or questions, follow me on Instagram! Feel free to send me a message if you have any questions.
Thanks! Signing off!
Incoming Software Engineer at Microsoft
Articles that might interest you:
The One Year Plan for Cracking Coding Interviews