Challenges /

Design Uber

Advanced

On the roadmap:Interview Ready · step 7: Practise under pressure

Design a ride-hailing system that matches riders and drivers.

Cover location ingestion, the geospatial index, matching and consistency, trip state machine, pricing and sharding.

Requirements

  • Riders request a trip and see nearby drivers
  • Match the rider with a suitable driver quickly
  • Track the trip in real time
  • Dynamic pricing and payments

Scale & constraints

  • Millions of drivers sending a location update every 4 seconds
  • 100M monthly riders
  • Matching decision in a few seconds
Hints (try without them first)
  • How do you index and query nearby drivers efficiently? Consider geohash or quadtrees.
  • How do you avoid matching two riders to one driver?
  • How do you shard trip data?

Your solution

Self-check: did you address each requirement?

0/200 characters minimum