Amazon SDE 2 Backend Interview Exp || Offer || August
Summary
I successfully interviewed for a Backend SDE 2 role at Amazon, completing six rigorous rounds including OA, screening, DSA, LLD, HLD, and a bar raiser, ultimately receiving an offer.
Full Experience
My interview journey at Amazon for an SDE 2 Backend role was comprehensive and challenging, spanning six distinct rounds.
Round 1 (OA): This was the Online Assessment. The questions were standard, though I don't recall the exact problems posed.
Round 2 (Screening Round): The screening began with about 10 minutes of Amazon Leadership Principle questions. Following that, the core problem was to Design a Type-ahead search system, which involved both Low-Level Design and Data Structures & Algorithms. They weren't looking for a complete working code but rather an implementation of key components. I focused on creating a trie and efficiently caching results at each node, explaining how a parent node's results could be formed by the union of its children's.
Round 3 (DSA): This round kicked off with another 10 minutes of LP questions. Subsequently, I was asked to solve three distinct LeetCode problems. I successfully implemented all three, providing working solutions.
Round 4 (LLD): The Low-Level Design round was conducted by Amazon's Head of Engineering and started with 15 minutes of LP questions. The problem given was to Design BookMyShow. The problem statement was quite vague, which meant I had to take the lead in driving the entire discussion. I designed the necessary classes, methods, and interfaces for the system. Towards the end, I was probed about which databases would be most suitable for storing different entities, and whether a different database type could be used for each.
Round 5 (HLD + HM): This round, focusing on High-Level Design and Hiring Manager aspects, included 25 minutes of LP questions. The design problem was to Design Chess.com (Online). A valuable tip provided was to conceptualize it as a chat application between two people, where chess moves are communicated in place of regular messages.
Round 6 (Bar Raiser): The final Bar Raiser round presented a problem related to dynamically computing top K values, specifically how to achieve this without iterating through all values during querying. Unfortunately, I don't remember the exact details of this problem.
Approximately two weeks after completing all rounds, I received the excellent news that I had been selected and extended an offer.
Interview Questions (6)
Design a type-ahead search system, emphasizing both Low-Level Design and Data Structures & Algorithms. The expectation was to implement core parts, such as creating a trie data structure and caching results at each node. Results for a parent node could be formed by combining results from children nodes.
You are given a rectangular brick wall represented by a list of rows. Each row is a list of integers representing the widths of the bricks in that row. The total width of all bricks in any row is the same. You want to draw a vertical line from the top to the bottom to cross the fewest bricks possible. If the line goes through the edge of a brick, that brick is not considered crossed. You need to return the minimum number of crossed bricks.
Design the BookMyShow system. This was a very vague problem statement, requiring me to lead the complete discussion, designing classes, methods, and interfaces. Towards the end, I was also asked about database choices for storing different entities, potentially using different databases for each.
Design an online chess platform similar to Chess.com. A crucial tip provided was to think of it as a chat application between two people, where chess moves are communicated instead of messages.