Last October, I got a knock from an Amazon recruiter on LinkedIn. It was about the software engineering opportunities at Amazon.
Coincidentally, back then, I was willing to relocate to a different country and move out of Singapore. The prolonged covid restrictions took a toll on me, and I was like enough is enough! I am getting out of here!
So, when I got the message from the recruiter, I decided to go for the interview. Apart from Amazon, I also interviewed with a few other companies. But today, let’s talk about the interview experience with Amazon for an SDE II role, along with some personal suggestions from my side. At the end of the post, I will also briefly share my preparation strategy for the interview.
The very first step in the process was a call with the recruiter. Upon getting to know of my interest, the recruiter took no time to schedule a call. It was short and to the point. She asked typical introductory questions about my current role and responsibilities, my interest in Amazon, and when I could start.
After talking about the typical stuff, she asked a few basic questions about data structures and algorithms. I didn’t quite expect that from the call. I guess the motivation is to reduce the chances of wasting interviewers’ time!
At the end of the call, the recruiter told me that she would send me a link to the Online Assessment (OA) – the infamous Amazon online test on coding, leadership principles, and system design. I got the email with the test link right after the call. I had a week to finish the test.
💡 Tip
In an initial call like this one, sometimes recruiters ask about expected salary. Try to avoid answering this question. Remember, it is too early to discuss compensation. You can always say that you have not done any research yet. So, it is better to discuss the topic at a later point in time.
I sat for the OA after a few days. It was an hour and a half long. I took a quiet corner at my home, removed all distractions, and clicked the ‘begin’ button.
Here are the notable points of the assessment –
There were three sections – coding, system design, and leadership principles.
The coding part had two problems. The first one was like a LeetCode easy, but the optimal solution for the next one was in the medium-hard range. I think the second problem can easily be used in an onsite round.
The system design section had a few multiple-choice questions. Nothing really surprising. Difficulty-wise, these should be easy for people with a fundamental understanding of large-scale system design.
The last part was the questions on leadership principles. It was a set of which-one-would-you-prefer questions. Your task is to show your preferences. There are, of course, no right or wrong answers.
The part on leadership principles was the most surprising and exhausting one. Yeah, I understand that these principles are like the Bible to Amazon, and the engineers there live by the principles.
But in my view, asking leadership-related questions in an online assessment adds little value to the process. Such questions make sense when discussed in person. In an online test, you have no way to evaluate what the candidate is thinking. And there is no scope for a solid discussion.
💡 Tip
Do not expect that the online assessment will be straightforward, rather expect surprises. This will help you avoid being caught off-guard during the test.
The next week, I had a call with the recruiter. She explained to me the next steps. Ideally, the next step would be a phone interview with an engineer. But for me, they decided to directly move to the onsite rounds.
After a few back-and-forth emails, my onsite was scheduled after three weeks. It was a circuit of four interviews, spanning over two days, two rounds each day. The interviews would be conducted over Chime, Amazon’s in-house communication platform.
Let’s briefly discuss each interview session.
Chronologically, the round went like this –
Quick introduction.
Questions on the leadership principles.
Follow-up discussion on the previous questions.
A coding problem that required DFS. It was a LeetCode easy.
The introduction took around 5 minutes. The discussion on leadership principles was around 20 minutes. For the coding part, we had half an hour.
An interesting thing about the interview was that the interviewer asked me to write pseudocode. He didn’t care for syntactically correct code as one can always look it up. I didn’t bother much and did what he asked.
The questions on the leadership principles led to a nice conversation about my past experiences. The interviewer was able to relate to a lot of stuff that I was talking about. Personally, I enjoyed the discussion.
Similarly, this round was straightforward –
An introduction.
Questions and discussion on the leadership principles.
A medium difficulty coding problem that again required DFS.
In this round, timings for the three parts were pretty much the same as the previous round.
Unfortunately, this round was not so smooth –
I was disconnected from the call four times in the first ten minutes.
For the fifth time when I joined, the interviewer seemed really pissed off – they asked me whether I wanted to reschedule the interview, to which I said no.
Fortunately, it didn’t drop again for the rest of the interview.
Just like the other interviews, the interviewer asked me a few situational questions on leadership principles and then moved to a coding problem.
Surprisingly, this was also a DFS problem of LeetCode medium difficulty.
Since there were hiccups in the round, we had around 15 minutes for the coding problem. This was not a very ideal situation. But to be honest, unpredictability is a part of the interview game.
💡 Tip
Arrange a stable internet connection for your interviews. And most importantly, have a backup, no matter how strong your network is!
The last round was the system design round which went like this –
A quick introduction with the interviewers. There were two interviewers in this round, and one of them was a shadow interviewer. But he also asked questions.
A discussion related to leadership principles.
A typical system design problem.
After the 5 minute introduction and the 25 minutes of leadership-related discussion, we had around half an hour for the system design portion. Unfortunately, it was not very interactive. The interviewers just listened to what I had to say and nodded. They asked 2–3 questions at the end, but there was little time to discuss anything.
In my view, there should be a more extensive system design discussion in such a round.
In all of the onsite rounds, the discussion on the leadership principles was quite extensive, and sometimes a bit repetitive. These discussions used up a significant amount of time from each of the rounds, which reduced the weight of the technical part.
In my experience, the Amazon rounds were the least tech-heavy compared to all the interviews I have ever had with other companies. But as long as this method works for them, it’s justified.
💡 Tip
Be prepared totell stories of your work and experiences. It is better to recollect your memories on the stuff you have worked on. Remember that the interviewers are also engineers, just like you. They will relate to your experience if you tell them good stories.
Before ending the post, let me briefly share my preparation. It was very straightforward –
For coding, I solved problems from LeetCode. I took a one-month subscription which was quite useful.
For system design, my primary resources were — the System Design Interview: An Insider’s Guide by Alex Xu, this excellent YouTube channel, and different company blogs, like Netflix, Uber, Twitter, Discord, etc.
For leadership principles, I followed the most popular technique – create a spreadsheet with at least two examples for each of the leadership principles, go over the sheet a few times before the interviews, and keep a map in your mind.
💡 Tip
Do not gather too many resources for your preparation. It might overwhelm you. Make a concise list of preparation materials and go through them completely. Do not waste time by frequently jumping in between different materials which will distract you.
In the following week, I got a positive reply from the recruiter. But due to better offers in hand, we parted ways.
Overall, this was my experience with Amazon. In the upcoming posts, I will share similar experiences with other companies, along with my preparation strategies.
Thanks a lot for reading!
Also published here