Find a Rider for Uber or Uber Eats — System Design Interview Practice
Design a matching algorithm to efficiently connect riders/customers with drivers in real-time. Work through the requirements, architecture trade-offs, and an interactive design review.
Requirements and concepts to consider
- Match riders with nearby driversRequirement
- Optimize for wait time and distanceRequirement
- Handle simultaneous requestsRequirement
- Driver acceptance and timeoutRequirement
- Prioritize based on ratings and surgeRequirement
- Support different service types (pool, premium)Requirement
- Handle millions of matches per dayRequirement
- Real-time location trackingRequirement
- matchingConcept to explore
- location servicesConcept to explore
- real timeConcept to explore
- optimizationConcept to explore
- geospatialConcept to explore