Amazon is one of the top tech companies in the world. According to a 2018 LinkedIn article, Amazon is the second-largest private employer in the United States and stands globally with an employee headcount of 566,000 as of 2018.
Working for a global company that serves millions of customers every day is an exhilarating prospect. Knowing that the code you write could have such a large impact can be quite enticing for many developers.
On top of that, Amazon enjoys many of the same perks that the big tech companies, including Google, Facebook, etc., enjoy. Numerous company benefits – including the ability to work remotely and competitive salaries, among others – are some of the reasons that may compel you to throw your hat into the ring.
If you are intrigued by what Amazon is offering, then you’ll need to be able to jump the “Amazon Interview” hurdle. Mastering this interview is the barrier that stands before you and working for one of the largest and most prestigious tech companies.
In this post, we are going to be outlining how to prepare for the Amazon technical interview. We will be highlighting some of the key differentiating factors for Amazon and how these compare to other, more standard technical interviews.
In this post, I will cover:
- What Is the Amazon Interview? Here we will take a look at the recruitment process, including what to expect, which is the first important step in preparing successfully.
- How Is the Amazon Interview Different From Other Companies? The best way to prepare is to have a good grasp on what Amazon prioritizes. In this section we’ll take a closer look at the process, including Amazon’s important Leadership Principles.
- How to Prepare for the Amazon Interview. In this section I’ll give you the results of my detailed analysis of Amazon interviews, providing you with concrete tips and insights that will help you prepare the best way possible for your own interview. We’ll look at possible questions, what to practice, and much more.
- Additional Resources to Master the Amazon Interview. Finally, to make your preparation easier, this section includes a handy list of resources you can rely on for your preparation.
Don't do another coding interview...
…Until you've mastered these 50 questions!
Preparing for any interview requires some work, and this is more so for a company the size of Amazon, where competition is very high. More preparation is always better, but what’s more important is the quality of preparation. After reading this post, you can rest assured that you will have greatly enhanced your chances of passing the interview!
What Is the Amazon Interview?
What exactly is the Amazon Interview? What should you expect when you walk into the room?
The majority of the Amazon interview consists of coding, and this is what the focus of this post specifically will be about. For strategies regarding how to ace your system design interview, consult the following post from Byte by Byte.
Let’s break down the primary components of what the Amazon Interview consists of.
The recruiting process begins either when someone from the recruiting team reaches out to you directly or when you apply for a position at Amazon and are contacted by someone from the recruiting team.
Generally, unsolicited recruitments occur to candidates who are graduating as part of a specific program or have, for instance, some type of compelling web presence to cause the recruiter on the Amazon side to reach out.
You will often be applying directly to Amazon to establish this correspondence. The most straightforward way to do this would be to apply directly on the careers website that Amazon offers. Amazon also has a specific website dedicated to student recruitment if you will be graduating from a university.
Amazon also sometimes recruits at job fairs, hackathons, etc., although waiting for any of those opportunities to arise organically may be a long waiting game, especially depending on where you are located around the globe.
You can also use a service like hackathon.com to see if there are any hackathons in your area.
If the application looks like a fit, someone from the Amazon recruitment team will reach out to you with further instructions on how to navigate the interview process.
Once you are in touch with a recruiter, they will want to coordinate your first phone interview.
Phone Screen/Coding Challenge
The phone screen involves writing code via a shared document between you and the interviewer.
The problems that you receive here are ones that can be solved in a reasonable amount of time, e.g., thirty to forty-five minutes, and are typically relatively basic questions that require a good understanding of data structures and algorithms.
You may also receive an email from the recruiter, containing a link to a coding challenge. Sometimes you might get either a phone screen or coding challenge, or both.
Typically, a time of sixty minutes or more is allotted, and once you click the link to begin your challenge, you must finish it within that time frame. Being unable to finish within your timeframe will count negatively against you, and oftentimes if you are unable to finish the task, you are automatically disqualified.
The coding challenge itself is typically composed of three to four questions, two of which require a solid understanding of data structures and algorithms. Alternatively, they might be questions related to your specific role.
When you complete the coding assessment, you will be contacted by the recruiter within a few days, though sometimes it might take a week or two. If you succeeded in the assessment, then you would proceed to either a phone or on-site interview. If not, however, you would have to reapply again.
If you succeed at the phone screen and/or coding challenge, the next step would be to bring you on-site to interview in person at Amazon.
This is typically structured as one full day of interviews, consisting of about four to five separate interviews. Each of these interviews takes roughly an hour. You may also be interviewing with different teams to determine what is the best fit between you and the teams, more specifically, where your strengths could be used most effectively to leverage any given Amazon team.
The interviews themselves will consist of the standard whiteboarding interview style, where you will be given a specific problem and expected to work through it during your interview. Depending on the role that you applied for, the interviews themselves may focus on technologies or concepts that are particularly relevant to that role.
Each on-site interview is conducted independently, and the feedback from one will not influence your performance on the subsequent interview. So if you feel like you performed poorly on the first on-site, the feedback from the first interviewer will not carry over into the second interview.
Amazon tends to sneak in at least one interview in this mix that is much harder than the others. This so-called “bar raiser” interview is meant to keep you on your toes and to ensure that the candidates handle difficult problems and high-pressure situations in a positive manner. If any of the interviews appeared much harder than the others, it is likely that this was a “bar-raiser.”
Once all of the interviews have concluded, each of the individuals that conducted the interviews with you will be responsible for submitting their respective feedback and making a decision to hire or not hire.
In the event that you receive a “no-hire” decision, you will need to start this entire process from the beginning. This can be very frustrating, especially after receiving this decision later on in the process.
If you are a “hire,” then congratulations! The recruiter will reach out to you with further information and instructions regarding your compensation package, start date, contract, etc.
How Is the Amazon Interview Different From Other Companies’ Interviews?
There are a few components that make the Amazon interview a unique experience. The better you are prepared for these differences, the greater your chances to pass the interview. Having a good grasp of the specifics can really make a difference.
Automated Interviewing With Coding Challenges
Unlike the Google interview, where the initial assessment is a phone screen, Amazon expands this assessment to sometimes include a coding challenge.
Some interviewers prefer this method, as the “performance anxiety” of interacting with another person is absent, and the only requirement on your end is to write code that executes correctly and efficiently.
This is also positive for Amazon, as they do not need to expend resources on conducting 30-45 minute interviews with candidates. Furthermore, they can also expand their reach substantially, as this process is somewhat automated.
Oftentimes, these coding challenges are driven through an engine similar to that of HackerRank, where your code is automatically analyzed for syntactic correctness, efficiency, and correctness for the task at hand. This gives a better signal to the interviewee about how well they are performing during the interview itself.
While all of these coding assessments will have instructions, they will often mimic those of HackerRank insofar as actually using the same submission and judging criteria.
Therefore, it is most likely a good idea to play around with the HackerRank interface, practicing a few problems to ensure that you do not get tripped up on the interface itself. This way, you can then just focus on solving the problem.
Amazon’s Focus on Scalability
As you might expect from the tech behemoth, Amazon is very concerned with how things scale. Being able to not only solve certain technical challenges but also scale them is an important criterion on which you will be assessed.
For system design-based questions specifically, having a solid grasp of the various database technologies, how they scale, and how they compare will be a feather in your cap when confronted with how to increase the scale of your initial solution for a problem.
Knowing how SQL compares to NOSQL, and being aware of the differences between DBMS and RDBMS, etc. is good to know. It is worth taking the time to do your homework on how these technologies compare.
Expect to be able to effectively navigate system design-style interviews. These interviews tend to test your overall ability to design and scale technically based systems.
If you’re unfamiliar with this style of interview or if you want practical tactics to prepare for system design interviews, check out this post by Byte by Byte that covers how to ace your interview.
Don't do another coding interview...
…Until you've mastered these 50 questions!
Amazon’s Leadership Principles
One of the aspects of the Amazon interview that is unique is the emphasis on their core principles.
For the list of principles, check out Amazon’s Leadership Principles page. For completeness, we will briefly list the principles:
- Customer Obsession
- Invent and Simplify
- Are Right, A Lot
- Learn and Be Curious
- Hire and Develop the Best
- Insist on the Highest Standards
- Think Big
- Bias for Action
- Earn Trust
- Dive Deep
- Have Backbone; Disagree and Commit
- Deliver Results
Oddly enough, even for the technical interview, knowing these principles, as well as abiding by them, is a key factor in performing well for the Amazon interview.
While you won’t need to recite these principles by rote, having a read through these and taking a few moments to showcase how you would illustrate these principles is surprisingly important, especially for the on-site interviews.
The reason for this is due to Amazon’s wanting to ensure that you would not only make a good technical hire decision but also someone who would align with the same principles and philosophy behind Amazon.
To supplement this list of principles, every year Jeff Bezos writes a public letter to Amazon shareholders. These letters are archived and available for public viewing on the U.S. Securities and Exchange Commission website here.
These letters are very much the core of what Amazon’s Leadership Principles are based on. In between blocked study sessions, reading these letters is a worthwhile endeavor.
It will help you better understand Amazon as a company, and it will inspire you to continue your study schedule. Furthermore, these letters are an overall great resource for how to build and be a part of a successful company.
Bar Raiser Interview
As we discussed above, the one interview that seems harder than all of the other on-site interviews is referred to as the “bar raiser.”
This style of interview is consistent with the Amazon Leadership Principles we covered from before, specifically the “Hire and Develop the Best” and “Insist on the Highest Standards” principles.
While this practice tends to vary depending on when and who is conducting the Amazon interview, this experimental practice is one that has been documented in books including Gayle McDowell’s fantastic Cracking the Coding Interview (CTCI) (This is an affiliate link and we earn a small commission if you buy through the link at no cost to you).
In addition to the content outlined here, we highly suggest you skim through the initial content of CTCI, specifically Part II where the hiring practices of Amazon are elaborated on. As a previous employee of Amazon, Gayle is able to draw from direct experience with what she experienced, and her account of their practices is certainly worth a read.
If you have not already picked up a copy of CTCI, you can purchase it here on Amazon.
How to Prepare for the Amazon Interview
So now that you know what the Amazon Interview consists of, how do you most effectively go about preparing for it? Let’s first see how not to prepare.
How NOT to Prepare for Amazon Interview
Part of knowing what to do involves also knowing what not to do.
In the post “Why I studied full-time for 8 months for a Google interview” by John Washam, the author outlines how he spent eight solid months preparing for the job without getting it in the end. John did, however, land a job at Amazon.
The study plan that John created for his journey is hosted on his GitHub and has over 75,000 stars. The plan outlines a plethora of study material and covers an incredibly wide range of topics.
While the coverage is extensive, one has to ask whether pursuing the goal in this breadth-heavy manner is a worthwhile and productive pursuit. By John’s own admission in the post, he advises against such an approach.
There is nothing incorrect about wanting to cover a broad range of topics and to dive deeply into all of them. One has to often step back and be as honest with themselves, asking if their actions are taking them toward or away from their goal.
We are all susceptible to the act of “productive procrastination,” that is, doing things that seem productive on the surface but that provide little to no overall impact for the goal or task at hand.
Following the rubric that John has created may get you the Amazon job, but it is almost certainly not the most ideal way in which to obtain it. Its primary weakness is that it covers too much information, with most of the information too far removed from the type of content that will actually enable you to succeed at the interview.
Pro tip: The quality of preparation is more important than the quantity.
Preparation Tactics for the Amazon Interview
The primary takeaway of the previous section is:
Spend most of your time on the most important and most likely material to appear in the Amazon Interview.
One of the shortfalls of John’s approach is the information overload approach that covers far too much breadth without enough depth.
As you would expect from an interview from the tech giants, having a solid grasp of data structures and algorithms is going to serve you well in both the phone screen and on-site interviews.
Most Common Amazon Interview Categories
The types of questions that we spend our time practicing is important, especially if we are targeting a specific company.
With this in mind, we decided to gather some data regarding the types of questions that are typically asked in Amazon interviews.
We combed through the website Glassdoor to find specific examples of what people had experienced in their Amazon interview.
Glassdoor has a page dedicated to Amazon, and individuals who have interviewed at Amazon give a review on their experience. This often includes specifics as to what problems, or at least, what types of problems they were asked during their interview.
After parsing through over one hundred interview experiences from Glassdoor for Amazon, I obtained the following distribution of the types of problems that were generally encountered in an Amazon interview.
For a bit more granularity, I also took these larger categories and broke them down into subcategories. For instance, instead of grouping Graphs/Trees together into one item, I broke it down into more specific and separate “Graphs” and “Trees” categories. The corresponding graph is shown below.
From both of these graphs, it’s clear that Amazon really favors the following topics:
- System Design
Protip: Amazon generally only asks system design questions to candidates with at least three or four years of software engineering experience.
One of the observations I made in parsing through this data is that there were recurrent specific problems and topics that arose in all three of these subcategories.
Let’s break each of these down. That way, you’ll be able to focus on the most likely categories, as well as the most likely specific problems, you may encounter in an Amazon interview.
In my analysis, the most common type of problem that interviewers encountered during their Amazon interview was one involving trees. While a few of them did have the occasional more exotic tree-like data structure (for instance, a trie), the majority of the tree-based questions were focused nearly entirely on either binary trees (BTs) or binary search trees (BSTs).
It would then stand to reason that understanding these types of data structures at a deep and fundamental level is exceptionally important for your success.
In addition, being comfortable with traversal algorithms on BTs and BSTs is a must-have skill. You should know how to operate both in an iterative, as well as recursive, fashion.
Being able to validate that a given BT is in fact a BST is a question that popped up rather frequently in the Glassdoor dataset. This type of question requires a strong understanding of both BT and BST data structures, in addition to knowing how to traverse both structures.
If you need a refresher on both BTs and BSTs, I have playlists dedicated to both on my YouTube channel:
LucidProgramming Binary Tree Playlist
LucidProgramming Binary Search Tree Playlist
I go over each of these types of data structures in detail, and I also provide a number of example questions that you may receive during your Amazon interview.
For instance, the question mentioned prior regarding how to validate a BST is provided in this video:
Validating a Binary Search Tree
More practice problems on binary trees and binary search trees can also be found under the “Practice Material” section of this post.
The same advice for trees applies here for arrays. In other words, you should be very comfortable with the array data structure, as it is commonly used in the majority of problems you will encounter.
One of the primary array-based questions that I observed in my analysis of the Glassdoor Amazon dataset was the “Two Sum” problem or some variation on that problem, e.g., “Three Sum,” etc.
If you want to see precisely how that problem is defined in addition to an explained solution, you can check out a video on my channel where I cover the Two Sum problem:
LucidProgramming Two Sum Problem
My advice to you would be to listen to the problem statement in the first part of the video. Pause it at this point and attempt to solve on your own. If you struggle, that’s OK.
If you get stuck or believe you have a solution that works and is efficient, watch the remainder of the video to see how I solve it. While it’s not the only way to solve this problem, it is one of the more efficient ways to do so.
Once you feel comfortable with the “Two Sum” problem, I would then advise you to seek out the “Three Sum” problem and further variations, as these are arguably not trivial extensions on the “Two Sum” problem.
Being comfortable with this problem and the techniques and data structures used to solve it will serve you well even if you do not receive this problem or any variation of it during your Amazon interview.
It’s no surprise that Amazon would want to focus on vague design constraints, especially ones that require eventual scalability.
The system design questions found at Amazon also have a specific flavor of involving more of a web-based component.
Typically, something involving the design of an e-commerce store or URL shortener service were specific questions on the system design category that popped up frequently in the Glassdoor data set.
Check out this Byte by Byte post on system design interviews that covers specific strategies and tactics to crush your system design interviews.
Like most things, practice makes perfect. The material that you use to practice is as important as the techniques that you use while doing so.
My two favorite practice sources for these types of problems are “Cracking the Coding Interview” and “50 Practice Questions for Coding Interviews.” More on both up ahead.
Cracking the Coding Interview
For starters, a resource like Cracking the Coding Interview (CTCI) is a text that not only covers the primary data structures and algorithms topics but also has a number of excellent problems and solutions in each category.
It’s a large textbook though, so having a strategy on how to utilize it is key. Check out the following post and companion video from Byte by Byte on how to best use this resource.
50 Practice Questions for Coding Interviews
Alternatively, or in addition, Byte by Byte has recently put together a free e-book that covers fifty practice questions. These fifty questions serve as a good metric to determine whether or not you are adequately prepared to tackle the Amazon interview.
Each of these fifty questions also has a companion blog post and video that walk through the solution. In the event that you get stuck on solving a particularly difficult problem, having this material to help you along and make progress is key to staying on target.
In the strategy section, we will consider how to approach these two resources in order to best extract value and increase your chances of passing the Amazon Interview.
Study Strategy for the Amazon Interview
Consistency is the key virtue to embody when preparing for the Amazon Interview. We will cover a number of Byte by Byte recommended strategies for how to be consistent and effective during your preparation.
Practice and Productivity
In order to ensure that you stay on track with your progress, Byte by Byte has a post and corresponding video on how to stay productive and consistent with your preparations in addition to a post on how to increase your productivity when studying for a technical interview.
As was touched on in the “How to Pass the Google Interview” post, it is key to “practice like you play.” Taking part in mock interviews in the absence of an IDE under time pressure will simulate the same type of environment. Using services such as Pramp is a great way for you to tick all of those boxes.
When you practice in this way, you will often get stuck and be unable to progress. This feeling of being stuck can be incredibly frustrating, and knowing how to counterbalance this is key to your success. This post on Byte by Byte elaborates on how to get unstuck during your coding interview.
Quickly Finding Brute-Force Solutions
When stuck for a given problem, you may be thinking too hard on producing the optimal solution. In doing so, you neglect to make any progress on your solution because you are too set on the optimal solution instead of just “a” solution.
A good rule of thumb for a hairy problem is to just tackle it with a brute-force solution as is recommended on Byte by Byte. Typically, this strategy will uncover some characteristics of the problem at hand and allow you to hone your understanding of the problem to eventually reach a better solution.
A brute-force solution is not an optimal one. However, that’s still preferable to having no solution at all, so start with a brute-force approach and take it from there.
Additional Resources to Master the Amazon Interview
Here are a number of additional resources, as well as a list of the resources, that we made reference to in this post.
- Cracking the Coding Interview by Gayle McDowell
- “Why I Studied Full-time for 8 Months for a Google Interview” by John Washam
- Coding University GitHub Repo by John Washam
- 50 Practice Questions for Your Coding Interview by Byte by Byte
- HackerRank Website
- Pramp Website
- Amazon Letters to Shareholders
- LinkedIn article on Amazon