Structure your answer as an end-to-end ML system, starting with data ingestion and partitioning, then moving through denoising, map-matching, ETA modeling, online serving, and monitoring. Emphasize trade-offs at each stage, especially latency vs. accuracy and scalability across a city grid. Tie everything back to Uber's real-time constraints and the need for robust rollback and evaluation mechanisms.
Pro tip: Highlight the importance of partitioning by geohash or H3 cells to enable parallel processing and low-latency lookups, and mention how you'd handle stragglers and hot spots. Also, discuss how you'd use online-offline consistency checks to detect training-serving skew early.
Describe how GPS pings from drivers are ingested via a scalable message queue (e.g., Kafka) and partitioned by city grid cells (e.g., H3) to distribute load and enable parallel processing. Mention handling of out-of-order events and late data.
Explain techniques to clean GPS noise (e.g., Kalman filters, outlier detection) and snap noisy points to the road network using map-matching algorithms (e.g., HMM-based). Discuss trade-offs between accuracy and computational cost.
Outline the ETA model: features (traffic, distance, time of day, driver history), model choices (gradient boosted trees, deep learning), and training pipeline. Emphasize online feature computation using only provided data and low-latency serving via model caching and precomputation.
Describe a low-latency serving architecture (e.g., feature store, model server) and monitoring for data drift, latency, and accuracy. Explain rollback strategies (canary deployments, shadow mode) and how to trigger them automatically.
Detail offline evaluation metrics (MAE, RMSE) and online evaluation (A/B tests, interleaving) to measure business impact. Discuss how to detect and mitigate training-serving skew and feedback loops.
AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.