Company Interview Questions · Product & Retail Tech
Uber: Machine Learning Engineer
Uber: Machine Learning Engineer Interview Process and Questions. Rounds, real reported questions and model answers, compiled from public candidate reports (sources at the end). Practice mode hides every answer: say your answer first, press Show answer, then rate yourself. Use 🔁 Review again to build your revision list and 🎲 Random question for a quick drill.
About this interview
Based on a public Uber MLE interview guide compiled from candidate reports, plus public candidate reviews. The questions are paraphrased, and the model answers are written by EasyLearnSpace.
| Role | Machine Learning Engineer (Bengaluru, Hyderabad, global) |
| Rounds | Resume screen → recruiter → 1–2 technical screens (coding + ML) → loop of 4–5 × 45–60 minutes: coding and data, applied ML, ML system design, product and collaboration, behavioural → hiring committee |
| Timeline | About 3–6 weeks |
| Themes | Real-time ETA, demand, driver-acceptance prediction, marketplace experiments, drift, safe frequent model updates |
01Rounds at a glance
- Coding: practical Python (rolling metrics, near-duplicate events, word-ladder BFS, gradient descent from scratch).
- ML design: marketplace problems with latency, observability and failure handling.
- Behavioural: production incidents, disagreements with PMs, technical debt.
02Questions and model answers
Q1
Design a model to predict whether a driver will accept a ride request.
- Label: accept/decline (or timeout) per request. Mind the selection bias: only dispatched offers are logged.
- Features:
- Pickup distance and ETA; trip length and direction (towards home?).
- Surge level; time and day.
- The driver's acceptance history, hours online, earnings so far.
- Rider rating; pickup area type (airport).
- Model: gradient boosting (or a two-tower model for driver–request matching), calibrated probabilities.
- Use: the dispatch optimiser maximises expected matches = Σ P(accept) × value; avoid over-offering to the same drivers.
- Evaluation: log-loss and AUC offline; online A/B on match rate, pickup ETA, cancellation, driver earnings fairness.
Q2
How do you monitor a newly deployed ETA model?
- Accuracy: MAE/MAPE against actual trip times (delayed labels arrive after the trip) by city, hour, distance band; the share of trips more than X minutes late.
- Input drift: distributions of traffic, GPS quality, new road closures; prediction drift against the previous model.
- System: p99 latency, error rate, fallback rate (to a heuristic), feature staleness.
- Business: cancellations, rider complaints, driver idle time.
- Alerts and rollback: shadow first, then canary; automatic rollback if MAE regresses by more than a threshold.
Q3
Why can the same algorithm on the same dataset give different results?
- Randomness: weight initialisation, data shuffling, dropout, bagging/feature subsampling, train/test split seeds.
- Non-determinism: GPU kernels (atomic adds), multithreading, floating-point order of operations.
- Different hyperparameters or library versions; data-order effects with early stopping.
- Fixes: set seeds, use deterministic flags, pin versions; report mean ± std over several seeds.
Q4
Implement gradient descent from scratch to fit a line.
import numpy as np
def fit_line(x, y, lr=0.01, epochs=2000):
w = b = 0.0; n = len(x)
for _ in range(epochs):
y_hat = w * x + b
dw = (2 / n) * np.dot(y_hat - y, x); db = (2 / n) * np.sum(y_hat - y)
w -= lr * dw; b -= lr * db
return w, b
x = np.array([1, 2, 3, 4.]); y = np.array([3, 5, 7, 9.])
print(fit_line(x, y)) # ≈ (2, 1)
- Discuss the learning rate choice, feature scaling and convergence checks (when the loss stops improving).
Q5
Design an experimentation framework for a two-sided marketplace.
- The problem: interference. Treating some riders changes the drivers available to control riders, which biases user-level A/B tests.
- Designs:
- Switchback tests: randomise by city-region × time window.
- Geo/cluster randomisation.
- Driver-side vs rider-side randomisation depending on the feature.
- Metrics: marketplace health (match rate, wait time, surge frequency, earnings per hour, cancellations) plus guardrails.
- Analysis: account for carry-over between windows, use cluster-robust standard errors, run long enough to cover weekly cycles.
Q6
Behavioural: describe a model that caused a production issue and how you handled it.
Answer (STAR):
- Situation: "A new pricing model inflated fares in one city after a holiday-calendar bug."
- Action: "I detected it from an alert on fare distribution, rolled back within 20 minutes, quantified the affected trips, worked with ops on refunds, and added a calendar unit test plus a canary gate."
- Result: "There were no repeat incidents, and the postmortem became the team's release checklist."
- Show speed, ownership, transparency and prevention.
03How to prepare for Uber
- Practise marketplace ML design (ETA, demand, matching, pricing) with latency and failure modes.
- Practical Python coding (rolling windows, BFS, dedup) plus ML from scratch.
- Learn experimentation under interference (switchbacks).
Sources
Created by Ajeetkumar