PracHub
QuestionsCoachesLearningGuidesInterview Prep
|Home/ML System Design/Uber

Design a restaurant recommendation system

Last updated: Jun 15, 2026

Quick Overview

An Uber MLE onsite ML system design question: design a personalized restaurant recommendation system for a food delivery marketplace's home feed. It tests candidate generation and ranking, feature engineering and training data, cold-start and exploration, low-latency serving, and offline/online evaluation, plus marketplace concerns like availability, ETA, diversity, fairness, and business rules.

  • medium
  • Uber
  • ML System Design
  • Machine Learning Engineer

Design a restaurant recommendation system

Company: Uber

Role: Machine Learning Engineer

Category: ML System Design

Difficulty: medium

Interview Round: Onsite

##### Question Design a **restaurant recommendation system** for a food delivery marketplace such as Uber Eats. When a user opens the home page, the system should rank restaurants (and optionally dishes) that the user is most likely to order. Personalize results using factors such as past orders, cuisine preferences, time of day, delivery address, restaurant availability, estimated delivery time (ETA), fees, and live marketplace conditions. **Goal:** Rank candidate restaurants for each user session to maximize long-term business and user value, while respecting marketplace realities. **Requirements / realities** - **Use cases:** personalized home-feed ranking; cold-start support for new users and new restaurants. - **Constraints:** users have a location and delivery radius; restaurant availability changes (hours, busy/closed, delivery coverage); items can be out of stock; ETA and fees matter; surge / courier supply affects feasibility. - **Cross-cutting concerns:** bias/fairness (e.g., exposure for new or small restaurants), fraud/quality, and feedback loops. - **Output:** a ranked list of restaurants (and optionally dishes), with optional explanations ("Because you liked X"). Walk through the following: 1. Define the **objective(s)** and the offline/online **success and guardrail metrics**. 2. Frame the problem as a **multi-stage funnel**: eligibility filtering, candidate generation (retrieval), ranking, and re-ranking. 3. **Candidate generation** approaches (heuristics, collaborative filtering, two-tower/embedding retrieval, trending, sponsored) and how you merge multiple sources. 4. **Ranking** model choices (GBDT vs deep vs multi-task) and what target(s) to predict. 5. **Feature design** across user, restaurant, context/geo/time, and cross/interaction features, including real-time signals. 6. **Training data and labels**, position bias, and feedback-loop mitigation. 7. **Cold start** for new users and new restaurants, and **exploration vs. exploitation**. 8. **Re-ranking / post-processing**: diversity, fairness/exposure, quality, and business rules (promotions, sponsored placements). 9. **Online serving architecture**: latency budget, feature store, caching, freshness. 10. **Experimentation, monitoring, debugging, and failure modes**, with mitigations. 11. A reasonable **MVP / phased rollout** plan.

Quick Answer: An Uber MLE onsite ML system design question: design a personalized restaurant recommendation system for a food delivery marketplace's home feed. It tests candidate generation and ranking, feature engineering and training data, cold-start and exploration, low-latency serving, and offline/online evaluation, plus marketplace concerns like availability, ETA, diversity, fairness, and business rules.

Related Interview Questions

  • Design Uber Eats Restaurant Recommendations - Uber (medium)
  • Present a Marketplace ML Project Deep Dive - Uber (medium)
  • Design a feed ranking system - Uber (medium)
  • Design real-time grid ETA for drivers - Uber (hard)
|Home/ML System Design/Uber

Design a restaurant recommendation system

Uber logo
Uber
Dec 15, 2025, 12:00 AM
mediumMachine Learning EngineerOnsiteML System Design
25
0
Question

Design a restaurant recommendation system for a food delivery marketplace such as Uber Eats. When a user opens the home page, the system should rank restaurants (and optionally dishes) that the user is most likely to order. Personalize results using factors such as past orders, cuisine preferences, time of day, delivery address, restaurant availability, estimated delivery time (ETA), fees, and live marketplace conditions.

Goal: Rank candidate restaurants for each user session to maximize long-term business and user value, while respecting marketplace realities.

Requirements / realities

  • Use cases: personalized home-feed ranking; cold-start support for new users and new restaurants.
  • Constraints: users have a location and delivery radius; restaurant availability changes (hours, busy/closed, delivery coverage); items can be out of stock; ETA and fees matter; surge / courier supply affects feasibility.
  • Cross-cutting concerns: bias/fairness (e.g., exposure for new or small restaurants), fraud/quality, and feedback loops.
  • Output: a ranked list of restaurants (and optionally dishes), with optional explanations ("Because you liked X").

Walk through the following:

  1. Define the objective(s) and the offline/online success and guardrail metrics .
  2. Frame the problem as a multi-stage funnel : eligibility filtering, candidate generation (retrieval), ranking, and re-ranking.
  3. Candidate generation approaches (heuristics, collaborative filtering, two-tower/embedding retrieval, trending, sponsored) and how you merge multiple sources.
  4. Ranking model choices (GBDT vs deep vs multi-task) and what target(s) to predict.
  5. Feature design across user, restaurant, context/geo/time, and cross/interaction features, including real-time signals.
  6. Training data and labels , position bias, and feedback-loop mitigation.
  7. Cold start for new users and new restaurants, and exploration vs. exploitation .
  8. Re-ranking / post-processing : diversity, fairness/exposure, quality, and business rules (promotions, sponsored placements).
  9. Online serving architecture : latency budget, feature store, caching, freshness.
  10. Experimentation, monitoring, debugging, and failure modes , with mitigations.
  11. A reasonable MVP / phased rollout plan.

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...

Browse More Questions

More ML System Design•More Uber•More Machine Learning Engineer•Uber Machine Learning Engineer•Uber ML System Design•Machine Learning Engineer ML System Design

Your design canvas — auto-saved

PracHub

Master your tech interviews with 8,000+ 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
  • AI Coding 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.