PracHub
QuestionsPremiumLearningGuidesCheatsheetNEWCoaches
|Home/System Design/Uber

Design Uber Eats-style search function

Last updated: Mar 29, 2026

Quick Overview

This question evaluates a candidate's ability to design scalable, low-latency search systems for a large-scale food delivery platform, testing competencies in system architecture, data modeling, indexing, query flow, freshness mechanisms, ranking, and personalization.

  • hard
  • Uber
  • System Design
  • Software Engineer

Design Uber Eats-style search function

Company: Uber

Role: Software Engineer

Category: System Design

Difficulty: hard

Interview Round: Onsite

Design the search function for a large-scale food delivery platform similar to Uber Eats. A user opens the app and types queries such as: - Restaurant names (e.g., "Joe's Pizza"), - Cuisines (e.g., "Thai", "Sushi"), - Dish names (e.g., "cheeseburger", "pad thai"). The system must return a ranked list of relevant restaurants (and possibly dishes) that can deliver to the user's location. ### Requirements **Functional requirements** 1. Users can search by: - Free-text query (restaurant name, cuisine, or dish). - Current location; results should be only from restaurants that deliver to that area. 2. Support filters and sort options, such as: - Open now / closed. - Price range, rating, delivery time estimate, distance. 3. Results should be ranked by: - Text relevance. - Distance / delivery ETA. - Restaurant popularity and rating. - (Optionally) user personalization. 4. Data changes that affect search: - New restaurants and menus being added. - Menu or availability changes (e.g., items out of stock, restaurant closed/open) should reflect in search reasonably quickly. **Non-functional requirements** (assume a large city / multi-city deployment) 1. Low latency: P95 search latency under ~200 ms from the service (excluding network to client). 2. High availability: search should continue to work even if some components fail. 3. Scalability: support millions of users, tens/hundreds of thousands of restaurants, and high queries per second. Describe the **high-level design** of such a system, covering: - Overall architecture and major components. - Data modeling and indexing strategy. - Query flow from the client to returned results. - How you keep the search index fresh when restaurants/menus/availability change. - Approaches to ranking and personalization. - Scaling and reliability considerations.

Quick Answer: This question evaluates a candidate's ability to design scalable, low-latency search systems for a large-scale food delivery platform, testing competencies in system architecture, data modeling, indexing, query flow, freshness mechanisms, ranking, and personalization.

Related Interview Questions

  • Design an Uber Eats Cart Service - Uber (medium)
  • Design A URL Shortener - Uber (medium)
  • Design Restaurant Search and Monitoring - Uber (hard)
  • Design Nearby Restaurant Search - Uber
  • Design a Food Delivery Cart - Uber (medium)
Uber logo
Uber
Nov 11, 2025, 12:00 AM
Software Engineer
Onsite
System Design
28
0

Design the search function for a large-scale food delivery platform similar to Uber Eats.

A user opens the app and types queries such as:

  • Restaurant names (e.g., "Joe's Pizza"),
  • Cuisines (e.g., "Thai", "Sushi"),
  • Dish names (e.g., "cheeseburger", "pad thai").

The system must return a ranked list of relevant restaurants (and possibly dishes) that can deliver to the user's location.

Requirements

Functional requirements

  1. Users can search by:
    • Free-text query (restaurant name, cuisine, or dish).
    • Current location; results should be only from restaurants that deliver to that area.
  2. Support filters and sort options, such as:
    • Open now / closed.
    • Price range, rating, delivery time estimate, distance.
  3. Results should be ranked by:
    • Text relevance.
    • Distance / delivery ETA.
    • Restaurant popularity and rating.
    • (Optionally) user personalization.
  4. Data changes that affect search:
    • New restaurants and menus being added.
    • Menu or availability changes (e.g., items out of stock, restaurant closed/open) should reflect in search reasonably quickly.

Non-functional requirements (assume a large city / multi-city deployment)

  1. Low latency: P95 search latency under ~200 ms from the service (excluding network to client).
  2. High availability: search should continue to work even if some components fail.
  3. Scalability: support millions of users, tens/hundreds of thousands of restaurants, and high queries per second.

Describe the high-level design of such a system, covering:

  • Overall architecture and major components.
  • Data modeling and indexing strategy.
  • Query flow from the client to returned results.
  • How you keep the search index fresh when restaurants/menus/availability change.
  • Approaches to ranking and personalization.
  • Scaling and reliability considerations.

Solution

Show

Comments (0)

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More Uber•More Software Engineer•Uber Software Engineer•Uber System Design•Software Engineer System Design
PracHub

Master your tech interviews with 7,500+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.