How to Prepare for Amazon Software Development Engineering Interview?
Amazon… “Hire and Develop the Best”. One of the Big Four Tech Companies who cares a lot about their Leadership Principles when it comes to opening a door for a candidate in the company. Amazon is a top company according to 2018 LinkedIn Article. If you are a person who is preparing yourself to get into this company, you might be definitely aware of the importance of Data Structures and Algorithms for interview preparation.
There is no doubt that this one is a must-have skill to apply for the job of SDE or software engineer role in Amazon or any other big tech company. Hiring procedures in these companies are kind of similar but we are going to share some specific detail, tips, preparation strategy, and evaluation process of Amazon to crack the interview. Keep in mind that the difficulty level of these rounds depends on the level of SDE position you are applying and you can prefer any programming language you are comfortable with.
Important Points to Keep in Mind:
- Amazon give higher weight and has a standardized script for Leadership Principles throughout the interview. It has a much stronger focus on customer obsession. So go through their leadership principles carefully if you are applying there.
- Do some background research on the company. What’s the company doing right now or what’s the market scenario or technology they are working on currently. That shows your interest in the company and this is a good way to judge a person how much a candidate is interested in the company.
- Interviewers are trained to not react to your answers so don’t expect yes or no answer from them that if you are heading in the right direction or not. This sucks but is a very effective way of assessing a candidate so prepare yourself to see stone-cold faces.
- Amazon conducts Bar Raiser round during onsite interview and in this round, they make sure that you as a candidate raise the bar for certain competencies, which means that you should be better than 50% of the people that are currently in that level.
- Amazon’s interview questions/difficulty levels are less consistent vs. Google or Facebook.
Now it’s time to discuss the strategy and rounds that Amazon conducts for the hiring procedure. But before that keep in mind a quick tip that works in every company…Your goal is to write just the right amount of good code and communicate well. You’re not paid to write code, you’re paid to think, figure out problems, and give the solution. To crack any technical interview all you just need is a laptop, a working internet connection, will solve problems regularly and within a few months, you can learn the essentials.
The interview procedure in Amazon kind of similar to other big tech companies so let’s discuss that…
Sending Application: Getting a call from Amazon for an interview is not easy if you don’t have any referral. Your chances to get the interview call is more if you have a connection with an employee there. If you don’t have we highly recommend making connection with hiring managers or recruiters via LinkedIn. Also, focus on your CV when you are applying for the job. Make it short, precise because none of the recruiters has more than 15 seconds to scan a CV. Write down only those things you are comfortable with, do not fake anything because the interviewer can spot that easily during the interview.. Below is the link for the guidelines of CV.
1. Resume Building – Resources and Tips
2. How to write an awesome and unique CV.
Screening Interview: Shall we invite this candidate for the full loop? To filter out a lot of candidates Amazon conduct this round and this round saves a lot of time and resources for the company. So there will be 1-2 screening rounds before the onsite interview. The screening round could be telephonic or you will be asked to complete a coding challenge where you need to write clean, good, and bug-free code and that should be also optimized. This round consists of basic to medium level data structures and algorithms questions, you will have some online document to write down your code and that will be visible to your interviewer. It can have a 2-3 coding question. Below is the point to keep in mind for an online coding challenge or telephonic interview.
- Telephonic round is not designed to be very difficult, the meet of the challenge is to be delivered at the on-site interview.
- Amazon HR’s are pretty flexible with the phone interview so generally, you can postpone the phone interview by a week to prepare yourself.
- Don’t bother much about Dynamic Programming or Leetcode hard questions for telephonic interviews.
- Concentrate more on Binary Trees and Binary Search Trees. Learn how to traverse the binary tree in a different order, how to apply BFS and DFS to binary trees. You should know how to construct the tree from a given array. These questions will help you to provide you the basic foundation for any binary tree problems.
- Check Arrays and Stacks related questions on Leetcode and GeeksforGeeks. Also, take a glance at the Linked List related questions on Leetcode and GeeksforGeeks.
- For phone screens, concentrate on data structures and algos for about 70% and LP’s (Leadership Principles) 30%.
- Their typical response times are anywhere between 1 day to a week. Within a week they should definitely get back with the results. In case someone fails to contact you then send an email after a week. Also, check the link Amazon Phone Interview for more idea.
Onsite Interview: Once you get selected in the previous round, you will be invited for a loop that will take one full day, consisting of about four to five separate interviews and each of these interviews takes roughly an hour. All these rounds will be technical with BR round (All Technical + One Managerial) at the end. The exact number of rounds depends upon how you perform in each round and the level you are applying for. Now here comes the role of DSA and CS fundamentals to check your coding and problem-solving skill. You need to prepare yourself with all your projects, internship, previous experiences, and definitely your coding and problem-solving skill.
We are going to categorize this in the below section…
- Technical Coding Round (Including Projects):
- The candidate is tested on whether he/she can solve real-world problems using the knowledge of data structures and algorithms. The expectation is to be able to arrive at the most optimized solution to the given problem. Your ability to convey your algorithmic knowledge along with code is a must.
- Below is the distribution of the types of problems that were generally encountered in an Amazon interview. This data is based on the interview experiences from Glassdoor for Amazon.
- Check the link How to Get a Job in Product Based Companies? to deal with in-depth technical coding question, what approach and tips you should follow during the interview.
- Check the amazon site Software Development Topics to go through all the topics for technical rounds.
- Ask all the clarifying questions, think about the Brute Force approach, optimize the solution, and then write down the code. This is the simple step we recommend you to follow to solve the coding question.
- You need to be comfortable with projects you have done in your past experience or during your internship. The interviewer will throw questions from there so make sure you have complete knowledge and detail about your project to explain it to the interviewer.
- System Design Round:
- System design questions are an open-ended conversation and this round is mostly conducted with an experienced candidate where they test your overall ability to design and scale technically based systems.
- Check the link System Design Interview Questions, System Design Interview Preparation and also check GeeksforGeeks
- The interviewer usually is interested in the choice of resources like Databases, Storage, Logging; efficient algorithms of the functionalities; identifying all the data and classes that would be important to store if anything goes wrong in the system; what functionalities are exposed to the end-user and what not so that they might not screw up the whole system?; Scaling of Systems and servers involved; Use of Multithreading, messaging queues, Cache, etc.
- Have a solid grasp on various database technologies, how they scale, and how they compare, knowledge of frameworks, and different technologies helps a lot in system design round.
- Amazon have a specific flavor of involving more of a web-based component in the system design round.
- On a Glassdoor data set designing an e-commerce store or URL shortener service popped out frequently.
- Bar Raiser Round: As we have already mentioned about the Bar raiser round in Amazon where a candidate is assessed on skills and cultural fit with amazon’s customer-centric and innovative principles. Bar raisers are specially trained for this. Below is the point you need to keep in mind for this round…
- ‘Bar raiser’ motive is to ensure the candidate is raising the bar not only for the specific team but for the whole company. Check the link Hire Like Amazon for more help.
- Amazon cares a lot about the Leadership Principle that we have already talked about. You should have stories for each principle. Expect the interviewers to probe into these questions.
- Its almost a technical round but they judge your leadership skills, your decision making power, your mistakes, your learning from your mistakes, your work and your conflicts with your team members, your initiative in the past work, your manager’s response to your work. Sometimes they give you situations and you have to answer your behavior in that situation.
- Amazon is also a place where you have to adapt quickly to changing objectives, your responses have to demonstrate that you can handle that.
Interview Evaluation Criteria: After the interview a meeting is held between all the interviewers to discuss, debate, and justify their individual ratings with the Hiring Manager and HR Representative. The interviewers give the whole summary after the interview. The outcome of this meeting will be a final Inclined or Not-Inclined decision for the candidate.
A software engineer is expected to know how to code, know when to ask for guidance, ability to articulate the thought process, approach to solving a problem and deliver results timely while maintaining a willingness to learn new processes and adapt quickly to changing roadmaps. An entry-level basic understanding of the core concepts of coding is generally all that is required and for higher-level ability to code and solve the complex problems based on experience matter a lot.
- Make a habit to solve problems regularly specially from GeeksforGeeks, LeetCode and HackerRank.
- Take the hints. Interviewers are always helpful and they will give you precise useful hints if you get stuck. It is important to catch the hint as fast as possible and proceed with the solution. If you are not able to catch the hint it is a big red flag.
- Never say that you cannot do it. Even if there is a problem that you have not solved before or seemed that you can’t solve it, keep attacking the problem from different angles, the interviewer will give you hints. But if you would say that you can’t solve the problem it is a big red flag and you might end up getting rejected.
- Interviewer have generally a mindset while taking the interview that if he/she can work along with the candidate in his/her daily to a job or not. So makes sure that you don’t speak something which can give a red flag sign during the interview.
- Learn to “think out loud”. It’s weird but in an interview setting, the most important piece is showcasing how you’ve come to a solution or understanding why you’re doing X before Y.
- Your interviewer wants to see 3 key things in your code. It should run fast, not take up more memory than it needs to, and is stable and easy to maintain. Accomplish that and you’re already ahead of most people.
- For behavioral question read about STAR method to describe a situation where you solved an issue that relates to the question; Explain the tasks you had to complete in order to solve the issue; Describe the action you took to complete the tasks; And close with the results of your efforts.
- Amazon Interview Experience
- Practice for Cracking Any Coding Interview
- Cracking Technical Interviews
- Tushar Roy – Coding Made Simple
- Glassdoor Amazon Software Development Engineer Interview Questions
- Ace The Coding Interview Everytime
- Coding Interview University
- Amazon Onsite Interview Question Onsite 2019