Uber System Design Interview: Driver Location Heatmap
Based on a candidate's reported Uber interview
The interviewer opens
Hi, and thanks for joining. Welcome to your interview for the Senior Software Engineer L5A 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 a driver location heatmap for an internal analytics dashboard, which is the kind of supply visibility Uber's operations teams rely on. It's up in the Problem tab, so please read through it and ask me anything you'd like clarified before you start drawing.
The problem
Design the backend for an internal analytics dashboard that shows a heatmap of Uber drivers in a city, both as a near real-time view of the last 20 minutes and as hourly buckets available for the previous day.
Must do
- Ingest location pings continuously sent by driver apps
- Show a heatmap of driver density for a chosen city over the last 20 minutes
- Show hourly heatmaps of a city for past days, available within 24 hours
- Let analysts pick the city and time range to view
Must hold
- The real-time heatmap stays fresh and keeps working through peak hours
- Hourly numbers must be accurate enough for analysts to trust