Amazon | SDE2 | Bangalore | Offer
Summary
I recently interviewed for an SDE2 position at Amazon in Bangalore and successfully received an offer. The interview process involved multiple Data Structures & Algorithms rounds, a Low-Level Design round, a High-Level Design round, and a significant focus on Amazon's Leadership Principles.
Full Experience
The interview journey for an SDE2 role at Amazon spanned several rounds.
My first screening round involved a standard LeetCode problem. I felt confident about my performance, considering it a strong hire.
DSA Round 1 presented a challenging problem related to data structure design, which I also felt I handled well, earning a strong hire verdict from myself.
DSA Round 2 consisted of two more LeetCode problems. Again, I was confident in my solutions, assessing myself as a strong hire.
The Low-Level Design (LLD) round was quite interesting. I was asked to design a cache with pluggable strategies like LRU/LFU and implement one end-to-end. I chose to implement an LRU cache using the Strategy pattern. This round had a peculiar start: the interviewer spent about 45 minutes trying to fully grasp the scenario before we even began coding. Despite this, I believe I performed adequately, leaning towards a 'lean hire' mainly due to the time constraint and the potential impact of Leadership Principle questions.
The High-Level Design (HLD) round was a classic 'Top K' system design problem, specifically for YouTube analytics. I had to design a system to find the top K users of all time based on view duration, suggesting a Spark job, and top K videos in the last 15 minutes based on view duration, proposing Flink for that. I felt this round went reasonably well, though I gave myself a 'lean/no hire' verdict, which is typical for HLD rounds where assessment can be more subjective.
Throughout the process, the Leadership Principles were heavily emphasized, often taking up 15-30 minutes of each technical round. I received a compensation offer of 42L base + 20L bonus for the first year.
Interview Questions (6)
Design a cache system that can utilize different eviction strategies like LRU (Least Recently Used) and LFU (Least Frequently Used). I was asked to implement one such cache end-to-end, specifically demonstrating the use of design patterns.
Design a classic Top K system for a YouTuber's analytics page. The system needs to display:
a) Top K users of all time based on view duration (suggesting a Spark job).
b) Top K videos in the last 15 minutes based on view duration (suggesting Flink for real-time processing).
Preparation Tips
My preparation involved solving Data Structures and Algorithms problems, specifically focusing on LeetCode. Additionally, I spent considerable time preparing for Amazon's Leadership Principles, as they were a critical component of every round, often consuming a significant portion of the interview time.