Company Name: Amazon
Job Role: SDE-1 (6 months internship)
YOE Required: 0
CTC: INR 80,000 per month.
Topic: Data Structures and Algorithms
Duration: 1 year
Source of Preparation: InterviewBit, Striver SDE Sheet, takeUForward Channel, Leetcode, GFG Archives
- Check Striver’s SDE Sheet for Interview Preparation.
- Check the ultimate resume building guide for coding interviews.
Round 1: Online Coding Round
Five components (2.5 hours) :
- Coding: 2 LC Medium level story-based problems. One on Binomial Coefficients (use DP to avoid TLE) and another on Heaps. I passed 10/10 on Q1 and 9/10 on Q2. Practice the past year’s archives extensively to get an overall idea.
- Debugging: 7 questions. Not hard as long as you have a good understanding of any of the OO languages (preferably C++)
- Workstyle Assessment (HR) : 50 questions. You have to move the slider to your inclination for the particular question. Keep in mind the 14 Amazon Leadership Principles while attempting this section.
- Reasoning Ability (Aptitude): 24 questions. Try to solve as much as you can, as many of the questions are follow-ups of the previous question.
- Feedback Form
I solved all the questions in the given time frame (and had 20 minutes to spare). Each section has an individual timer, so always check how long a problem is taking to be solved. You have to solve every question to get a chance to clear this round, as the competition was very high. Only 40/1000 candidates were selected from this round.
In 4 days, I received the invitation for the technical rounds.
Round 2: Online round [Amazon Chime]
- The interviewer was very strict on the timing. He stated that he would give two problems, and I was supposed to provide him with the optimized solution in the first go (unlike the usual method of starting from naive and reaching optimized)
- Q1: Convert a given Binary Tree to a Doubly Linked List.
- Q2: Given an array of strings with each string denoting a number, find the second largest number without doing type conversion (as the string value can be extremely high, and converting will not be efficient).
I gave him an answer using the strcmp() method. He gave me an edge case, and I fixed it by checking the string size also in the condition. There were only 5 minutes left, so I typed out the program as fast as I could while explaining the logic on the side. He asked the TC and SC, and I answered it right as well.
The interviewer said that while I struggled a bit initially, I was able to handle the pressure and do both sums in the short time given, and he was pleased with that.
I asked him a question based on the culture at Amazon, and after answering it, he wished me luck on the following round, and the interview ended.
After this round, I felt much more confident, and the second round was scheduled just 1 hour later.
Round 3: Online Round 2
- Q1: Given a complex string with characters going up and down, what must be done to print it. For this, I decided to use a char matrix and figured out the standard pattern of the up and down traversals. I coded it up quickly as I talked through the logic and wrote the complexities within 10 minutes.
- Q2: Validate a Binary Search Tree. This problem needed recursion, and I was able to code it up and tell the complexities pretty quickly.
- Since I had completed both questions quickly, she spent the rest of the time asking about various sorting algorithms and their tradeoffs. She then asked me about my favorite data structure (Queue), and we had a long discussion on it.
After this, I asked her a few questions, and we had a small discussion on the 14 Principles of Amazon. The interview ended on a good note.
I was expecting the 3rd round, but thankfully they had decided my candidature with two rounds.
Only 8 out of the final 40 were selected for the internship, and gratefully I was one among them.
- Be very strong with your DSA. I had solved around 400 questions on Leetcode and InterviewBit in the past year, and I had solved 50 questions in the last one week before the interviews.
- You have to solve both questions given in every interview and have enough time to answer follow-up questions as well (especially when questions are easy)
- Maintain an aura of calm before your interviews. It can help your mind to think clearly and form connections with your previously solved problems.
- Always keep the interviewer in the loop with your thoughts. Never stay silent. Only then can they help you if you lose track of the problem
- Emphasize clean, modular code with comments. This demonstrates your ability as an engineer. Use appropriately named functions and variables.
- As you code up, think about the edge cases. It will help avoid unexpected issues later on.
- Know your projects, resume, and past experiences. Be ready to tell them in detail about everything.
- Practise DSA with a coding buddy (pair programming). It helps you build the practice of explaining your code, and is a win-win situation.
- If you are preparing for Amazon, the 14 Leadership Principles are a must.
Message to Aspiring Students:
If you wasted your first 2 years of college, it is okay. I too was on the same boat, and for many days couldn’t see the light at the end of the tunnel. But, if you put in consistent efforts regardless of success or failure, you will get the reward.
I started as a total newbie into DSA in September 2020 (3rd year – when many of my friends got a nice internship). I balanced DSA with projects, open-source, networking, getting consistent rejections everywhere, and brutal university exams, vivas, and projects for almost a year until I finally got this amazing offer. And trust me, the appreciation and admiration from friends and family (especially my parents) and the realization that I could achieve whatever I put my mind to are 100% worth it.
That will be all. Amazon is not difficult if you are confident in your DSA and development skills. All the Best!