← Uber Interview Insights

Uber·Software Engineer·Onsite - System Design / Architecture·Senior

SeniorPrefer not to say
Apr 2026

Summary

Uber onsite for an SWE role, ML system design round. The whole thing was a deep dive into end-to-end ML systems, recommendation pipelines, and experimentation design. Pretty intense if you haven't thought carefully about train-serve skew or two-stage retrieval before.

Questions Asked (7)

Q1

Design a restaurant recommendation system for Uber Eats end-to-end, from feature pipeline to serving to evaluation.

System DesignTechnical Trade-offs
Author's notes

This is the big one.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scale, then walk through the end-to-end ML system: data collection, feature engineering, model training, serving, and evaluation. Emphasize trade-offs at each stage, such as batch vs. real-time features, model complexity vs. latency, and offline vs. online metrics.

Pro tip: Uber Eats operates in a two-sided marketplace, so your design must balance user preferences with restaurant supply and delivery logistics. Explicitly discuss how you'd handle cold-start for new users/restaurants and incorporate real-time signals like current wait times.

1. Clarify Requirements and Scale

Ask about scale (users, restaurants, orders), latency requirements, and business goals (e.g., increase order completion, user satisfaction). Define success metrics like CTR, conversion rate, or delivery time.

2. Data and Feature Pipeline

Describe data sources (user order history, restaurant menus, location, time, ratings) and how to process them. Cover batch (e.g., Spark) and streaming (e.g., Kafka, Flink) pipelines for features like user cuisine preferences, restaurant popularity, and real-time context.

3. Modeling and Training

Choose a model architecture (e.g., two-tower neural network for candidate generation, gradient boosted trees for ranking). Discuss training data, negative sampling, and how to incorporate business rules (e.g., promote local restaurants).

4. Serving and Inference

Design a low-latency serving architecture: precompute embeddings, use a feature store for online features, and deploy models via a model server (e.g., TensorFlow Serving). Discuss caching, fallbacks, and A/B testing infrastructure.

5. Evaluation and Iteration

Define offline metrics (e.g., NDCG, recall@k) and online metrics (CTR, conversion). Plan for A/B tests, monitoring for drift, and feedback loops to retrain models.

Key Points to Mention

  • Two-tower model for candidate generation and a separate ranking model to balance relevance and latency.
  • Feature store for consistent online/offline features and to avoid training-serving skew.
  • Cold-start strategies: use content-based features for new restaurants, and contextual bandits for new users.
  • Real-time signals: incorporate current restaurant wait times, delivery ETA, and user location.
  • Scalability: sharding, caching, and asynchronous processing to handle peak loads.
  • Evaluation: offline metrics like NDCG, online A/B tests, and guardrail metrics like delivery time.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q2

How would you handle cold-start for new restaurants or new users in your recommendation system?

System DesignTechnical Trade-offsProduct Sense & Ideation
Author's notes

They pushed on this right after I laid out the main architecture.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the two cold-start scenarios (new restaurants and new users) and their unique challenges. Then propose a multi-pronged strategy that leverages content-based features, contextual information, and exploration-exploitation techniques, while emphasizing evaluation and iteration. Conclude with trade-offs and how you would measure success.

Pro tip: Show awareness of Uber's two-sided marketplace: new restaurants need exposure to generate data, while new users need personalized recommendations without history. Mention using geolocation and time-of-day as strong signals for both.

1. Clarify the problem and constraints

Ask clarifying questions to understand the scale, available data, and business goals. Distinguish between new restaurants (item cold-start) and new users (user cold-start).

2. Leverage content and context

For new restaurants, use metadata (cuisine, price, location, reviews) to compute similarity to existing restaurants. For new users, use contextual signals (location, time, device, signup info) to infer preferences.

3. Apply exploration and exploitation

Use bandit algorithms (e.g., epsilon-greedy, Thompson sampling) to balance showing new items to gather feedback and showing known good items. For new users, start with popular or diverse recommendations and quickly adapt.

4. Incorporate feedback loops and transfer learning

Design the system to rapidly incorporate user interactions (clicks, orders, ratings) to update embeddings. Use transfer learning from similar users or restaurants to bootstrap models.

5. Evaluate and iterate

Define metrics (CTR, conversion, diversity, coverage) and run A/B tests. Monitor for biases and ensure new restaurants get fair exposure. Iterate based on results.

Key Points to Mention

  • Content-based filtering using restaurant attributes (cuisine, price, location) and user demographics/context.
  • Exploration-exploitation trade-off via multi-armed bandits to gather data on new items/users.
  • Use of contextual information (geolocation, time of day, weather) to personalize for new users.
  • Transfer learning and meta-learning to leverage data from similar users or restaurants.
  • Cold-start specific metrics: coverage, diversity, and time-to-first-interaction.
  • Hybrid approach combining collaborative filtering with content-based methods.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q3

How do you ensure that the features used during training match the features available at serving time?

System DesignTechnical Trade-offs
Author's notes

Train-serve skew.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by acknowledging the training-serving skew problem and its impact on model performance. Then describe a systematic approach: define a shared feature schema, use a feature store to serve consistent features, and implement monitoring and validation to detect drift. Emphasize collaboration between ML and platform teams to maintain consistency.

Pro tip: Highlight the importance of logging serving-time features and comparing them to training features in real-time; this not only catches skew but also provides data for retraining. Mention that at Uber, this is critical for dynamic pricing and ETA models where real-time accuracy is paramount.

1. Define a Unified Feature Schema

Establish a single source of truth for feature definitions, including data types, transformations, and expected ranges. This schema should be shared between training and serving pipelines.

2. Use a Feature Store

Leverage a feature store that provides consistent feature computation for both offline training and online serving. This ensures that the same logic is applied in both environments.

3. Implement Validation and Monitoring

Set up automated checks to compare feature distributions and statistics between training and serving. Monitor for drift, missing values, and unexpected changes in real-time.

4. Automate Retraining and Rollback

Create pipelines that trigger retraining when significant skew is detected, and have rollback mechanisms to revert to previous model versions if issues arise.

Key Points to Mention

  • Training-serving skew and its consequences (e.g., degraded model performance)
  • Feature stores (e.g., Feast, Tecton) and their role in consistency
  • Point-in-time correctness for training data to avoid leakage
  • Real-time monitoring and alerting for feature drift
  • Collaboration between ML engineers and data platform teams
  • Versioning of features and models to track changes

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q4

Walk me through how you'd design the evaluation framework for this system, both offline and online.

A/B Testing & ExperimentationProduct Analytics & Metrics
Author's notes

Covered NDCG and recall@k for ranking, MAPE for ETA.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the system's goal and success metrics, then outline a two-pronged evaluation strategy: offline for rapid iteration and online for causal validation. Structure your answer around metric selection, offline evaluation methods, online experimentation design, and iteration/guardrails.

Pro tip: Emphasize that offline metrics are proxies and can mislead; always validate with online A/B tests, and be prepared to discuss how you'd handle interference or network effects in Uber's marketplace.

1. Define Goals and Metrics

Clarify the system's objective and map it to measurable metrics: north-star, secondary, and guardrail metrics. Ensure metrics are aligned with business goals and user experience.

2. Design Offline Evaluation

Select appropriate offline datasets (historical, holdout) and evaluation methods (e.g., cross-validation, backtesting). Choose metrics like precision/recall, RMSE, or ranking metrics, and set up a pipeline for rapid experimentation.

3. Plan Online Evaluation

Design A/B tests or switchback experiments with proper randomization, sample size, and duration. Define success criteria, guardrails, and monitoring for novelty effects and interference.

4. Iterate and Validate

Use offline results to filter candidates, then validate top candidates online. Analyze results for statistical significance and practical impact, and iterate based on learnings.

5. Monitor and Guardrail

Continuously monitor key metrics post-launch, set up alerts for regressions, and have a rollback plan. Consider long-term effects and holdout groups for sustained evaluation.

Key Points to Mention

  • Metric selection: north-star, secondary, guardrail metrics
  • Offline evaluation techniques: cross-validation, backtesting, holdout sets
  • Online experimentation: A/B testing, switchback tests, randomization unit
  • Statistical power, sample size, and significance testing
  • Handling interference and network effects in marketplace systems
  • Iterative process: offline for speed, online for causality

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q5

How would you design the feature pipeline to support both batch training and low-latency online serving?

System DesignData Modeling
Author's notes

Talked through offline batch on Hive, online lookup from Redis or Cassandra, and streaming features for freshness.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements: what features, latency targets, and consistency needs. Then propose a unified pipeline with a feature store that serves both batch training and online serving, ensuring consistency via point-in-time correctness. Discuss trade-offs and how to handle scale and freshness.

Pro tip: Emphasize the importance of avoiding training-serving skew by using the same transformation logic and feature definitions in both paths. Mention Uber's Michelangelo or Feast as examples of feature stores that solve this problem.

1. Clarify Requirements

Ask about latency SLAs, feature freshness, volume, and consistency requirements. Understand the use cases and constraints.

2. Design Unified Feature Store

Propose a feature store that ingests data from batch and streaming sources, computes features, and stores them in both offline (for training) and online (for serving) stores.

3. Ensure Consistency

Use the same feature computation logic for batch and online, and implement point-in-time correctness for training data to avoid leakage.

4. Optimize for Latency and Scale

Choose appropriate storage (e.g., Redis for online, HDFS/S3 for offline) and precompute features where possible. Discuss caching and partitioning.

5. Monitor and Iterate

Set up monitoring for feature freshness, drift, and latency. Plan for backfilling and versioning of features.

Key Points to Mention

  • Training-serving skew and how to avoid it
  • Point-in-time correctness for training data
  • Lambda architecture vs. Kappa architecture
  • Feature store components: offline store, online store, feature registry
  • Stream processing for real-time features (e.g., Kafka, Flink)
  • Latency requirements and trade-offs (e.g., precomputation vs. on-the-fly)

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q6

How would you design an ETA prediction system, and what metrics would you use to evaluate it?

System DesignProduct Analytics & Metrics
Author's notes

Shorter segment of the interview but still meaty.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the scope: ETA for riders or drivers, real-time or batch, and data sources. Then outline a high-level architecture covering data ingestion, feature engineering, model training, and serving, and finally discuss offline and online evaluation metrics.

Pro tip: Emphasize the importance of real-time features and the trade-off between model complexity and latency, as Uber's ETA system must serve millions of requests with low latency.

1. Clarify Requirements

Ask questions to understand the specific use case: rider ETA, driver ETA, or delivery ETA? What is the required latency and scale? What data is available?

2. Design Data Pipeline

Describe how to ingest and process historical and real-time data: trip records, traffic conditions, weather, events, and driver locations. Mention batch processing for training and stream processing for real-time features.

3. Modeling Approach

Propose a machine learning model, such as gradient boosted trees or deep neural networks, that predicts ETA based on features like distance, time of day, traffic, and driver behavior. Discuss training and updating the model.

4. Serving and Scaling

Explain how to serve predictions in real-time with low latency, using a scalable microservice architecture, caching, and fallback mechanisms.

5. Evaluation Metrics

List offline metrics (MAE, RMSE, MAPE) and online metrics (actual vs predicted ETA, cancellation rates, user satisfaction). Discuss A/B testing and monitoring.

Key Points to Mention

  • Real-time feature computation (e.g., current traffic speed, driver location)
  • Handling sparsity and cold-start for new drivers/routes
  • Incorporating external data (weather, events)
  • Model retraining frequency and feedback loops
  • Latency requirements and trade-offs (e.g., model size vs accuracy)
  • Business metrics like ETA accuracy impact on user trust and retention

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q7

How would you monitor a deployed recommendation model for drift, and how often would you retrain?

System DesignRoot Cause Analysis
Author's notes

This came up late when the interviewer pushed past the baseline.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by defining what drift means for a recommendation model and the metrics you would track (e.g., feature drift, prediction drift, business metrics). Then describe a monitoring system that computes these metrics on a schedule, sets alerts, and triggers investigation or retraining. Finally, discuss retraining frequency based on drift detection, business impact, and cost, emphasizing a data-driven approach.

Pro tip: At Uber, real-time monitoring and automated retraining pipelines are critical due to the scale and dynamic nature of the data. Mentioning specific tools like Kafka for streaming data, Prometheus for metrics, and Kubeflow for pipelines can demonstrate practical experience.

1. Define Drift and Metrics

Identify the types of drift (data drift, concept drift) and select metrics to monitor: feature distributions, prediction distributions, and business KPIs like CTR or conversion rate.

2. Set Up Monitoring Infrastructure

Implement a system to compute metrics on a schedule (e.g., hourly/daily) using streaming or batch processing. Use tools like Prometheus for metrics and Grafana for dashboards.

3. Establish Alerting and Thresholds

Define thresholds for each metric based on historical variability and business impact. Set up alerts to notify the team when drift exceeds thresholds.

4. Investigate and Diagnose

When alerts fire, investigate root causes: check data quality, upstream changes, or shifts in user behavior. Use tools like root cause analysis frameworks.

5. Retrain and Deploy

Decide on retraining frequency: either on a fixed schedule (e.g., weekly) or triggered by drift detection. Automate retraining and deployment pipelines with canary testing.

Key Points to Mention

  • Types of drift: data drift, concept drift, and their impact on recommendations
  • Monitoring metrics: statistical distances (KL divergence, PSI), prediction distribution shifts, and business metrics
  • Tools: Kafka for streaming, Prometheus/Grafana for monitoring, Kubeflow for pipelines
  • Alerting thresholds and avoiding alert fatigue
  • Retraining strategies: scheduled vs. triggered, and cost-benefit analysis
  • Automated retraining pipelines with CI/CD and canary deployments

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.