People might know the usual Amazon New Grad Process steps, but for those of you who do not know anything about it, these are the 4 steps:
OA 1 - Debugging Round [20 mins] :
7 questions in C, C++ or Java to be solved in 20 minutes. I took this too lightly and tried solving them in a crowded environment which made me face a time crunch. I was able to get 6/7 correct. Although it is very easy to get 7/7. Lesson learnt: do not take anything lightly!
OA 2 - Technical Round [70 mins] :
2 Algorithm questions straight out of Amazon Online Assessment Questions. I got Merge Two Sorted Lists and Subtree of Another Tree, both of them being LC easy. I really find myself lucky enough to get them, solved them in about 15 minutes, passing all test cases. Also, this round has an untimed survey kind of thing which asks you behaviour questions to be answered ideally keeping Amazon’s Leadership Principals in mind. They present sliders to choose options, so you do not need to type anything in. This round went well!
OA 3 - Work Style Simulation and Logical Reasoning Round [2.5 hours] :
This round has various work style simulations, which tests your decision making skills given any work related situation. Be thouroughly prepared with Amazon LPs, and irrespective of what is moral or not, always stick your answers to what a “Leader with Leadership Principals” would do, imagining yourself at Amazon, given any situation. Also, after the tiring work simulation, you have 25 logical reasoning questions to be solved in 35 minutes. This one is kind of rough and I just finished by the last minute. For this, I do not think you can practice much but be sure to solve problems fast. Problems aren’t tough but you got less time to do them.
Final Interviews (3 rounds)
After successfully completing the online assessments, I was invited to a survey to fill up my availability for final 3 45 minutes each virtual interviews, with 15 minutes in-between interview breaks. A lot of people get 1 or 3 virtual interviews after their OAs. People with 1 final interview are lucky enough as they are usually asked to just explain and optimize the code they submitted for OA 2, thats it (Ridiculous!). Also, there is no knowing that people with flawless OAs have gotten 1 final interview as I’ve seen many contradictory cases. Anyways, this is what I had:
The interviewer was a young SDE from the looks of it. As far as I remember, he started of asking me some LP questions such as:
- Tell me about your yourself (the general icebreaker).
- Tell me about tim when you faced a difficult challenge.
- Tell me about a time when you needed help from someone during a project.Then he moved on to the coding question:
Luckily I had solved this question in the past 2 weeks and I came up with the solution in 10 minutes. I don’t think he expected me to solve it this fast! He wasn’t well versed in Java so I explained him some lines. Be sure to always explain the approach before writing code. I know how excited anyone can get if they see a known problem, but hold your horses and explain each step clearly and then ASK whether you should start off with this approach. We had some time left so we discussed some edge cases and then he asked me to tell him about an interesting project of mine. This interview went really well for me and gave me a lot of confidence boost! Remember to stay grounded though!
The interviewer appeared to be a senior SDE but was quite friendly and firm to talk to. He joined the call late so he told me that he may have to take 10 minutes of my break between interviews. He started off with general LP questions such as:
- Tell me about a time when you thought of an unpopular idea.
- Tell me about a time when you had to decide upon something without consulting your superior.
- Tell me about a time when you had to face tight time constraints during a project.
After these questions, he moved on to the coding part with just 20 minutes left! And he started of with “Lets design a game”, and I got really nervous to be honest. The question was a variation of Minesweeper, I had never solved this question before! But I kept my cool and could design the APIs to form the grid with given number of mines, and was asked to write an API to solve it too. I could partially complete this because I had already used up my 20 mins, but my interviewer looked quite satisfied with the approach, and said that the solution looked good enough! I just had 5 minutes of break after this interview and I felt this round was okay but did not go as well as the first!
The interviewer was a senior SDE with a shadow interviewer who looked like a junior SDE. She told me about her work at Amazon (which was really awesome as she worked in the Prime Video Recommendations team). She started off with some behaviour questions such as:
- Tell me about yourself.
- Tell me about a time when you did not meet your deadlines for a project.
- Tell me about a time when you had conflicting ideas with your teammates and how did you resolve them?
After these, she moved on to the coding part with about 30 minutes left. The question was Same Tree, and yes, I sighed! I solved the question in 10 minutes with the recursive approach, and then another took another 10 minutes to solve it iteratviely as she asked for it in her follow-up. We discussed the time and space complexities, recusion disadvantages and in the end, with 5 minutes left, she asked me if I had any questions. I asked her about her tasks in some more details about Prime Video Recommendation systems and she was very happy to tell me about it. I also tried to let her know that I would love working on such projects some day! Overall, this interview went quite well too!
- 7th September: Applied to New Grad SDE
- 20th September: Recieved OA1
- 22nd September: Completed OA1, Received OA2
- 27th September: Completed OA2, Received OA3
- 30th September: Completed OA3
- 3rd October: Received mail regarding successfully passing OA rounds
- 11th October: Received mail regarding survey to schedule final 3 interviews. Scheduled interviews on 25th October (needed some time to prepare!!)
- 25th October (Friday): Final 3 Inteviews
- 30th October (Wednesday): Received offer on the candidate portal after 4 long anxious days!!
The company I was interning in laid off all employees and went defunct in San Francisco, in April, and I could only work there for 4 months their, although my internship time was for 8 months. After getting unemployed, I started with Leetcode somewhere around April mid. I have been grinding it till October and have completed around 330 problems, specially from Amazon’s list. The harsh truth about interviewing is that you really need to be thorough with the problem patterns and grind them, no other way to get a successful job. Some takeaways from my story when I look back are:
- Things happen for good, you should just persist through time and good things will happen to you too.
- Practice in a BFS fashion, broad topics first, top 100 interview questions first, then target the company/topic lists. Know your problem solving patterns.
- Youtube is an excellent source. Thanks to some really good channels such as Back to Back SWE, Tushar Roy, happygirlzt, and a lot many more, helped me get clearer solutions to problems that seemed tough to solve.
- If you’re preparing for Amazon, give 35% of your time to prepare for Leadership Principals (2 stories for each of the 14 LPs). Trust me, you do not want to go unprepared on them. Refer to this guy’s amazing channel on Youtube Dan Croitor.
- Even easy LC questions seems tricky after solving 200+ questions too, so you’re not alone.
- Quality of questions matter, not quantity. After reaching the 250 mark, I repeated all the questions and solved them again. You discover new ways to solve them and learn more! The problem patterns seep into your brains that way.
- Don’t try to memorize the questions but the most common ones get memorized automatically. Templates such as Binary Search, BFS, DFS, LL traversals, Backtracking templates, etc should be really well revised!
- There comes a time of burnout when you don’t feel like progressing (I faced one). While applying and studying, you get a lot of rejects and no progress as such but do not ever forget your end goal! Work towards it, I know how hopeless one can feel during the journey.
- Try to enjoy life. I did not to be honest. It looked like a routine to me, although it helped but do not just make Leetcode your life! I had my friends and family to remind me about this!
- I still am in no way a good coder, but I like to think myself so much better than I was months ago!
- Checkout Leetcode’s Discuss channel often for more experiences and questions. You wouldn’t get the same but it surely helps!
I know that was a long post but this is it, my full experience and journey into getting an offer from Amazon. Interviewing is a lot about luck, trust me, but the only thing in your hand is practice and perseverance. I was lucky but prepared.
Goodluck with your journey!