Uber System Design Interview: Real-Time Driver Location Tracking
Based on questions reported for Uber interviews
The interviewer opens
Hi, and thanks for joining. Welcome to your interview for the software engineer role at Uber. We'll design a system together, with you sketching on the whiteboard on the right of your screen as you talk, and you can pause at any time with the Pause button at the top right if you need a break.
The problem is about tracking driver locations in real time, which sits at the heart of how Uber works. It's up in the Problem tab, so please read through the requirements and ask me anything you'd like clarified before you start drawing.
The problem
Drivers' phones send their GPS position every few seconds while online. Design the system that takes in these updates and lets other services ask where a given driver is right now, or which drivers are currently in a given area, for millions of drivers worldwide.
Must do
- Accept a GPS position update from each online driver every few seconds
- Return a given driver's latest known position
- Return the drivers currently near a given point or inside an area
- Stop returning drivers who have gone offline or stopped reporting
Must hold
- Queries must reflect where drivers are now, within a few seconds
- Must keep absorbing updates through peak hours worldwide