Snap·Software Engineer·Onsite - System Design / Architecture
- Walk through the full lifecycle of a ride request in a ride-hailing system, from the moment a rider submits a request to trip completion.
- How would you design the driver-side flow for accepting or rejecting an incoming order, including timeout and reassignment logic?
- Design the user profile storage for both riders and drivers, covering payment info, preferences, and any driver-specific data.
- User profile reads happen at very high QPS. How do you design the read path to handle that load reliably?
- How would you handle peak-hour load spikes? Cover caching strategy, capacity scaling, request throttling, and surge pricing as a demand-side lever.
- Briefly, how would you approach geo-based driver matching? What data structures or services come into play?
“I started with the happy path and that was fine, but I underestimated how much they wanted to dig into state transitions.”