Role: SDE-2
College: Not Specified
Interview Date: Not Specified (Last Updated Sep 16, 2024)
Interview Type: Full-Time
Result: Not Specified
Difficulty: Hard
Rounds: 2 (Bar Raiser - covering multiple sections)
Topics Asked: High-Level Design, Low-Level Design, Coding & Problem Solving, Distributed Systems
Experience:
This experience details two rounds, likely conducted by a Bar Raiser or a similar external panel given the structure.
Round 1:
- High-Level Design: Design for statement processing and user notification for end-of-month bank operations.
Round 2 (Bar Raiser): This round was divided into multiple parts.
- Part I: Coding: Not explicitly detailed, but expected.
- Part II: LLD: Create a low-level design for the backend of a ride-sharing service like Uber or Lyft. Considerations included:
- DB Schema (supporting scalable driver finding and ride booking).
- Models, manager classes with proper injected variables and methods with request/response parameters.
- Design patterns and their incorporation into manager classes.
- API design.
- Part III: Distributed System:
- What is the CAP Theorem? How to achieve consistency and availability?
- Given 5 auth servers and a load balancer, how to maintain a single session token for each user when requests are directed between multiple servers.
- As an ads seller on YouTube, how to monitor real-time user activity watching ads. What components would be used to scale this system?
- If there are different data centers in different locations, how to ensure both sync with each other in a scalable system with continuous data updates. How to optimize huge amounts of writes on large tables.