ml system design
DoorDash
Uber Eats
Grubhub

DoorDash ML System Design: Multi-Channel Restaurant Recs

Topics:
Candidate Generation
Personalization
Recommender Systems
Roles:
Software Engineer
ML Engineer
Data Engineer
Experience:
Mid Level
Senior
Staff

Question Description

Overview

You are asked to design a multi-channel restaurant recommendation system for a food delivery and review platform (think DoorDash/Yelp). The system should produce personalized suggestions for three channels: an in-app homefeed, real-time push notifications, and batched email campaigns. Focus on architecture, data flow, candidate generation, ranking, and channel-specific serving constraints (latency, batch vs. streaming, and content format).

High-level flow

Start with data ingestion (user profiles, order history, restaurant metadata, real-time signals like location and wait time) into a feature store and event stream. Build an offline training pipeline for candidate generation and ranking models, plus an online serving stack (low-latency caches, model servers, real-time feature retrieval). Implement a feedback loop that captures clicks, orders, and ratings back into your training data and online features for continuous learning.

What to show in an interview

You should explain candidate generation (collaborative, content-based, and context-aware filters), ranking with personalized and business-aware features, and exploration-exploitation (e.g., contextual bandits) to surface diverse options. Address channel tailoring: sub-100ms serving for homefeed/push (caching, approximate nearest neighbors), geofence-triggered push logic, and batched curation for email. Cover scalability, reliability (redundant model endpoints, graceful degradation), monitoring, A/B testing, and strategies for cold-start and diversity. Use concrete trade-offs and metrics (CTR, conversion, latency, availability) to justify design choices.

Common Follow-up Questions

  • How would you design an online feature store and low-latency feature retrieval to meet <100ms requirements for homefeed and push?
  • Describe how you'd implement exploration vs. exploitation (e.g., contextual bandits) to surface diverse restaurants while optimizing conversion.
  • How do you handle cold-start for new users and new restaurants across different channels (homefeed vs. email)?
  • What metrics and A/B test designs would you use to evaluate model updates and channel-specific recommendation changes?
  • How would you design a fault-tolerant serving layer and graceful degradation strategy if the real-time model service is unavailable?

Related Questions

1Design a personalized push notification system that recommends restaurants based on user location and time
2How to build a scalable candidate generation pipeline for an item recommendation engine
3Design a recommendation ranking stack with business-aware objectives and constraints
4How to incorporate real-time trending signals into a recommendation system for discovery

Explore More Questions

Practice This Question with AI

Get real-time hints, detailed requirements, and insightful analysis of the question.

ML System Design: Multi-Channel Restaurant Recs — DoorDash | Voker