My Amazon SDE Interview Experience – May 2024
In May 2024, I had the opportunity to interview for a Software Development Engineer (SDE) role at Amazon. It all started when a recruiter reached out to me via LinkedIn. I was pleasantly surprised, as it’s always exciting.
How It All Started
The recruiter was professional and clear, giving me all the necessary details about the process and the role. After exchanging a few messages, I received a test link for the first round of the interview, which was a coding assessment. The assessment was hosted on HackerRank and comprised two coding questions.
First Round - The Coding Test
The questions were straightforward but slightly lengthy. Here's a breakdown:
1. First Question: Barcode Generation
The task was to generate a barcode based on some predefined parameters. While the question wasn't inherently complex, it required attention to detail to ensure all conditions were met. I approached this problem methodically, breaking it down into smaller parts and implementing a solution in JavaScript. The focus was on efficiency and clarity, ensuring that the generated barcode met the expected format and constraints.
2. Second Question: Array Processing with Deployment Status
This was more of a data manipulation task. The input consisted of objects, each with a deployment ID and a deployment status. My goal was to return an array based on these inputs. While the problem seemed simple, it came with its share of edge cases. For instance, some objects were missing keys, which wasn’t apparent at first glance. However, after submitting my initial solution, I realized that such edge cases needed to be accounted for. I quickly revised my code to handle these scenarios, ensuring that the missing keys wouldn’t lead to errors or incomplete results.
I solved both questions using JavaScript and was confident that my solutions passed all the test cases, including the hidden ones.
Amazon tends to move candidates forward in the process if they solve all the coding questions with all test cases passing.
After that got a call from recruiter saying that he is moving forward with the interview process, and it is going to be an onsite interview. I had 5 days to prepare.
I have been working remotely from past 3 years and never been to office, so I was scared more because of office rather than the interview rounds 🙃😂
Further Interview Rounds
I went to the amazon office, few candidates were already there. We all went for interviews. I had 3 technical rounds of interview that day.
1. Troubleshooting Round
The first round was a troubleshooting-focused interview. As soon as I walked into the room, I was greeted by an interviewer who was incredibly supportive. He kept smiling throughout the session, which helped ease my nervousness.
He handed me a sheet of paper and presented several questions related to system failures, networking, and network layers. The approach he used was particularly interesting. He asked me to think about basic solutions first—essentially encouraging me to solve the problem from the ground up. Once I provided an answer, he changed the scenario slightly, adding more complexity with each step.
For example, after discussing a network failure, he shifted the conversation to deeper layers of the network and asked what I would do if standard solutions didn’t work. This pushed me to think creatively and consider various failure points in a system, from the most common to more intricate issues.
Interview asked me to wait outside, after that one recruiter came and said that I will be going for second round.
2. DSA Round
The next round was a deep dive into data structures and algorithms (DSA). This time, my interviewer was a senior SDE at Amazon. She greeted me with a sheet of paper and presented a fairly large and complex question. As I read through it, I quickly realized that the main objective was to find the shortest path in a graph. This type of problem is common in interviews but can get tricky when edge cases are involved, which she was sure to include.
I asked a few clarifying questions to fully understand the problem and its various scenarios. Once I felt confident, I began to work on a solution—writing pseudocode directly on the paper. As I explained my approach and logic, she continuously probed deeper, asking why I made certain decisions and how I was handling different parts of the graph. I walked her through my thought process, discussing the trade-offs and optimizations. Fortunately, I was able to solve the question completely and correctly.
Once she was satisfied with my graph solution, she asked me about the time and space complexity, which I analyzed and explained to her. Feeling a sense of accomplishment, I thought the round was going well.
However, she soon moved on to another, more challenging question—this time involving dynamic programming (DP). The problem involved a matrix in which different crops needed to be planted in a way that followed certain rules. This was a more complex question, and I took my time to fully understand it. I asked several questions to ensure I covered all the constraints and edge cases.
I wrote a pseudocode solution, but it wasn’t fully optimized. She gave me some test cases, and while my code ran successfully on about 80% of them, there were still edge cases that failed. I was getting nervous at this point, and she noticed that. Fortunately, she offered a helpful hint, and I tried to optimize my solution further. Despite my best efforts, I couldn't completely nail the solution, likely due to my nerves taking over.
I waited outside again, I was not very happy and confident about with this round, but the recruiter again came said that my next round is System design. I got so happy!
3. System Design Round
The final round of the day was the System Design interview, and this was by far the most intense and draining session. The interviewer was part of Amazon’s architecture team, and right from the start, I could tell that this round would be challenging. We began with a discussion about my resume, focusing on my past projects and the design decisions I had made in previous work. He asked several questions about the architecture of the systems I had worked on, probing into the details of my design choices and the trade-offs I made.
After this initial discussion, he asked me to design a system for an ed-tech platform, with a specific focus on the video streaming feature. The goal was to design a system where teachers could stream live video sessions, and students could attend those sessions online.
We began with the high-level architecture, discussing the main components such as video servers, databases, and APIs. I explained my approach to handling the large number of users and ensuring a smooth video streaming experience. He continuously asked about scalability, reliability, and latency issues, which are crucial for a platform with live video.
Once we had covered the high-level design, he shifted the conversation to the low-level details. This is where the discussion became more technical. We explored various approaches for optimizing the system, handling edge cases, and ensuring a seamless experience for users even in worst-case scenarios. I had to think on my feet, offering solutions and alternatives for different problems, including handling spikes in user traffic and ensuring minimal downtime.
The interviewer kept presenting different scenarios—what if a video server goes down? How would you handle network congestion? How do you ensure low latency for students in different geographical regions? Each scenario required a detailed answer, and I found myself fully immersed in discussing possibilities and design patterns.
The entire interview lasted about 1.5 hours, and by the end of it, I was exhausted. It was mentally draining but also one of the most insightful interviews I’ve ever had. We explored various architectural challenges, and it felt more like a collaborative problem-solving session than a traditional interview.
So I went to amazon office at 9 AM in the morning and came out at 5 PM in the evening, I had all my rounds completed and the recruiter said that he is moving forward with the managerial round, which is not scheduled yet.
Top comments (0)