Amazon SDE2 Onsite Experience – Lessons Learned
Summary
I was interviewed for the SDE2 role at Amazon, going through OA, a phone screen, and four onsite rounds covering LLD, DSA, HLD, and Leadership Principles. The process was rigorous, with deep probing on every story I shared.
Full Experience
I was reached out by an Amazon recruiter on LinkedIn for the SDE2 role.
My interview process began with an Online Assessment, which included two Data Structures and Algorithms problems, System Design MCQs, and Behavioral questions. Following that, I had a single Phone Screen round, which focused on DSA and a general discussion.
The Onsite Rounds were intense:
- Round 1 (LLD, Bar Raiser): This round focused on Low-Level Design, where I was tasked with designing a restaurant reservation system, including its APIs and entities. This was arguably the toughest round, with the interviewer being very strict and probing deeply.
- Round 2 (DSA): I initially misunderstood this as a design problem, which cost me valuable time. The actual question was a LeetCode-style system design problem: "Design Twitter."
- Round 3 (DSA): In this round, I successfully solved both problems given and even managed to tackle a follow-up question.
- Round 4 (Hiring Manager + HLD): The final technical round was with a Hiring Manager, where I had to design a rider–driver matching system, similar to how Uber operates.
Every round incorporated 2 Leadership Principles (LPs) questions. They expected very deep probing on every story I shared, noting everything down and asking multiple cross-questions. I observed that the Bar Raiser round was particularly challenging; the interviewer was stoic and relentless with cross-questions. Overall, Amazon interviews thoroughly test coding, design, and LPs, emphasizing that even a small slip can impact the final outcome. I felt the bar has become significantly high across top companies.
Interview Questions (5)
Design a restaurant reservation system, including its APIs and entities, as a Low-Level Design problem.
Design Twitter, described as a LeetCode-style system design problem.
Given an array and an integer x, I needed to make x zero by picking elements from either the start or the end of the array, with the goal of minimizing the number of elements picked.
Given a graph, determine if it contains a cycle.
Design a rider–driver matching system, similar to the functionality found in Uber, as a High-Level Design problem.
Preparation Tips
I advise future candidates to be extremely well-prepared for Data Structures & Algorithms, Low-Level Design, High-Level Design, and especially Leadership Principles. Even a single mistake or an unclear answer can severely hurt your chances.