Design the system that predicts when a restaurant order will be ready for pickup, used by dispatch to time Dasher arrival.
Practice against the follow-up probes
- What is your label, given that true ready-times are mostly unobserved or noisy?
- Which errors cost more — Dasher early or food early — and how does that enter the model?
- What features exist without leakage, and which must be served in real time?
- How do you handle brand-new merchants and menu items?
- How do you connect model metrics to marketplace outcomes?
Show answer guide
What the interviewer is probing
ML judgment under label noise and asymmetric costs: ready-time is rarely logged directly (proxies: pickup time minus wait, merchant confirmations when present), errors are asymmetric (early Dasher = paid waiting; late Dasher = cold food and lateness), and the model's value is realized only through dispatch decisions — so calibration and uncertainty matter more than point-accuracy bragging rights.
Strong answer outline
- Label construction: where merchant "ready" signals exist, use them with de-noising; elsewhere infer from Dasher arrival/wait/pickup telemetry (ready ≈ pickup when Dasher waited; censored when food waited). Model the censoring rather than pretending labels are clean; keep a small ground-truth panel for calibration.
- Loss design: asymmetric cost — under-prediction (Dasher early) costs Dasher time; over-prediction (food ready, no Dasher) costs quality and lateness. Use quantile regression or explicit asymmetric loss; dispatch consumes a distribution (e.g., P50 + P90), not a point.
- Features without leakage: merchant historical prep by item/basket size/hour, current confirmed queue depth, kitchen throughput proxies, time/weather; real-time features (queue, recent confirmations) via online feature store; strictly exclude anything timestamped after the prediction moment in training joins.
- Cold start: hierarchical backoff — item → menu-category → cuisine → market priors; shrink toward the merchant as their data accumulates; widen predicted uncertainty for new entities so dispatch pads conservatively.
- Serving: prediction at order-confirmation and re-prediction on signal updates; latency budget small; feature freshness monitored; training/serving parity via shared feature definitions.
- Evaluation tied to decisions: offline — calibration and quantile loss by segment; online — Dasher wait minutes, food-sit minutes, lateness, cost per delivery via experiment; monitor drift by merchant cohort (menus and staffing change constantly).
The underlying concept
This is decision-focused ML: the model's product is not a number but a calibrated distribution consumed by an optimizer whose costs are asymmetric — so loss functions, uncertainty, and calibration are the design surface, not afterthoughts. Label noise and censoring are the second theme: real operational labels are inferred from behavioral traces, and modeling their generation process beats wishing they were clean. Hierarchical priors solve cold start the same way they solve every sparse-entity problem: borrow strength, then let data earn independence.
Source
Distilled Prep canon — curated from DoorDash's public work on ETA and prep-time prediction.
Source: Distilled Prep canon (curated)