- Published on
Amazon | SDE2 | Bellevue | Sep '24 [Offer]
- Author
- Shared Anonymously
I wanted to share my recent Amazon interview loop experience for an SDE2 position.
Online Assessment:
- 2 coding questions + a work style assessment (pretty sure i might've only got like half the test cases to past for both questions :|)
Virtual Onsite (4 rounds):
Round 1:
- 2 leadership principle (LP) questions (Deliver Results, Learn and Be Curious)
- LCA of Binary Tree III (Problem Link)
Round 2:
- 2 LP questions (Earn Trust, Disagree and Commit)
- System design for Amazon warehouses to prioritize truck deliveries
Round 3:
- 2 LP questions (Dive Deep, Invent and Simplify)
- Implement 2 APIs: one to track user visits, the other to return the first user to visit only once. Follow-up: return the first N users who visited only once.
Round 4:
- 3 LP questions (Ownership, Customer Obsession, Deliver Results)
- Implement an unbounded set with expiration.
Experience:
The first two rounds were pretty iffy. In Round 1, I got stuck on the LCA problem, confusing it with a different solution. The interviewer helped me, but it took time, and I was sure I failed the question. However, I think my answers to the LP questions helped balance the overall performance.
The system design in Round 2 also tripped me up. I expected a large-scale system but later realized the problem required handling only about 1k orders per day. After asking clarifying questions, I pieced together a design using a "top k" prioritization approach. Apart from the "top k" portion I felt like I just slapped on some other boxes a few DBs and some arrows. At this point, I felt like I was 0/2.
Fortunately, things improved in the last two rounds. For the API design in Round 3, I initially considered an ordered data structure, but the interviewer hinted at an O(1) solution. I managed to implement the code with minor help on the Remove method for the doubly linked list, making this round much smoother. My solution ended up being comprised of a Doubly Linked List + HashMap.
In Round 4, the interview went 20 minutes over. Instead of 2 LP questions, I got 3. The problem for the unbounded expiring set was open-ended, and after clarifying the requirements, I designed a solution similar to a thread-safe cache with an expiration background process.
Overall, I was surprised to get an offer, given how I felt about my first two technical rounds. Amazon doesn’t provide feedback, but I believe my LP answers helped offset my weaker technical performance. Also, apart from the first DSA round, the other questions felt more practical, though DSA knowledge still helped. Hopefully, this helps anyone preparing for an Amazon interview—good luck!