Interview Process
Round 1: Initial Discussion (30 min)
- Focus: Introduction and behavioral.
- Details: Deep dive into my past experience, my current role, and the impact of my recent projects.
Round 2: Low-Level Design (LLD) (60 min)
- Topic: Design a Rate Limiter.
- Details: Required implementing different rate-limiting strategies:
- Sliding Window protocol.
- Allowing an exact X number of requests.
- Rate limit window configuration (Eg - X request allowed till initial 30 mili sec...)
- User-based rate limiting.
Round 3: High-Level Design (HLD) (60 min)
- Topic: Design a Notification Microservice.
- Details: End-to-end architecture discussion on how to scale, handle failures, and manage different notification channels (Email, SMS, Push, etc.).
Round 4: Low-Level Design (LLD) (60 min)
- Topic: Design BookMyShow (BMS).
- Details: Core focus on database schema and data modeling. We went deep into:
- Tables, indexes, and relations.
- Mapping between tables (e.g., resolving concurrency issues during seat booking).
- Follow-up questions based on my resume.
Round 5: High-Level Design (HLD) (60 min)
- Topic: Design an Image Processing Microservice.
- Details: Discussed the architecture for uploading, processing (resizing, compressing, watermarking), and serving images at scale.
Key Takeaways & Observations
- Cloud Focus: Across all rounds, the interviewers were highly focused on AWS and its specific ecosystem of services. If you are interviewing here, brush up heavily on AWS architecture patterns.