← DoorDash Interview Insights

DoorDash·Software Engineer·Onsite - System Design / Architecture·Staff

StaffPrefer not to say
May 2026

Summary

DoorDash system design round focused entirely on the infrastructure side of a recommendation system, no ML modeling involved. Pretty deep dive, they wanted specifics on caching layers, feature stores, and rollout strategies, not just hand-wavy architecture diagrams.

Questions Asked (6)

Q1

How would you design the candidate retrieval and ranking pipelines for a large-scale recommendation system?

System DesignTechnical Trade-offs
Author's notes

I started with a two-stage setup, approximate nearest neighbor search for retrieval then a lighter ranker before the heavy model.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the scale and business context (e.g., DoorDash's delivery recommendations), then outline a two-stage architecture: candidate retrieval (narrowing millions to hundreds) and ranking (scoring and ordering). Emphasize trade-offs between latency, accuracy, and scalability, and discuss how you'd evaluate and iterate on the system.

Pro tip: Tie your design to DoorDash's specific challenges, such as real-time delivery constraints, sparsity of user-item interactions, and the need to balance exploration with exploitation. Mention how you'd handle cold-start and dynamic supply/demand.

1. Clarify Requirements and Constraints

Ask about scale (users, items, QPS), latency budget, and business goals (e.g., conversion, delivery time). This ensures your design is tailored and shows you think before coding.

2. Design Candidate Retrieval

Describe multiple retrieval strategies (e.g., collaborative filtering, content-based, trending, geo-based) and how to combine them. Discuss using approximate nearest neighbor (ANN) for embedding-based retrieval and precomputation for efficiency.

3. Design Ranking Pipeline

Outline a multi-stage ranking: a lightweight model to prune candidates, then a heavier model for final scoring. Mention feature engineering (user, item, context), model choices (GBDT, DNN), and online/offline consistency.

4. Address Scalability and Latency

Explain how to partition data, use caching, and parallelize retrieval. Discuss trade-offs between model complexity and inference speed, and how to meet strict latency SLAs.

5. Evaluation and Iteration

Cover offline metrics (recall@k, NDCG) and online A/B testing. Describe how to monitor performance, detect drift, and incorporate feedback loops for continuous improvement.

Key Points to Mention

  • Two-stage architecture: retrieval then ranking
  • Embedding-based retrieval with ANN (e.g., FAISS, HNSW)
  • Feature engineering and real-time features (e.g., user location, time of day)
  • Trade-offs: latency vs. accuracy, model complexity vs. scalability
  • Cold-start and exploration/exploitation strategies
  • Evaluation metrics and A/B testing framework

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

Q2

Walk me through how you'd implement multi-tier caching for a recommendation system, covering user features, item features, and final results.

System DesignTechnical Trade-offs
Author's notes

This was the part I felt best about.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements (latency, scale, freshness) and then describe a layered caching architecture: local in-memory caches, distributed caches like Redis, and a persistent store. Walk through each tier for user features, item features, and final results, explaining cache invalidation, eviction policies, and trade-offs between consistency and latency.

Pro tip: Emphasize that caching is not just about speed but also about cost and correctness—discuss how you'd measure cache hit rates and adjust TTLs based on business metrics like conversion or click-through rate.

1. Clarify Requirements and Constraints

Ask about scale (QPS, data size), latency targets, freshness requirements, and consistency needs. This shapes cache design choices like TTLs and invalidation strategies.

2. Design Cache Layers and Data Flow

Propose a multi-tier cache: local in-memory (e.g., Caffeine) for ultra-low latency, distributed cache (e.g., Redis) for shared state, and a database as source of truth. Explain read/write paths and fallback mechanisms.

3. Apply Caching to User Features, Item Features, and Results

For each component, specify what to cache, key structure, TTL, and invalidation triggers. User features might be cached per user ID, item features per item ID, and final results per user or user segment.

4. Address Invalidation, Eviction, and Consistency

Discuss strategies like TTL-based expiry, write-through/write-behind, and event-driven invalidation. Explain how to handle stale data and ensure eventual consistency.

5. Discuss Trade-offs and Monitoring

Compare latency vs. freshness, memory vs. cost, and complexity vs. benefit. Mention metrics to track (hit rate, eviction rate) and how to tune the system over time.

Key Points to Mention

  • Cache hierarchy: local (L1) and distributed (L2) caches with different eviction policies (LRU, LFU).
  • Key design: namespacing, versioning, and serialization format for user/item features and results.
  • TTL and invalidation: time-based expiry, event-driven invalidation (e.g., when user/item updates), and cache stampede prevention.
  • Consistency models: eventual consistency for recommendations, with fallback to real-time computation if cache miss.
  • Trade-offs: memory cost vs. latency, staleness vs. freshness, and complexity of maintaining multiple tiers.
  • Monitoring: hit rate, latency percentiles, and business metrics (CTR, conversion) to validate cache effectiveness.

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

Q3

How would you design a feature store to support both online serving and offline model training for a recommendation system?

System DesignData Modeling
Author's notes

Honestly the question I was least prepared for in terms of specifics.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the requirements: low-latency online serving, large-scale offline training, and consistency between them. Then propose a dual-store architecture with a unified feature definition and transformation layer, and discuss how to handle data freshness, backfilling, and monitoring.

Pro tip: Emphasize the importance of point-in-time correctness for offline training to avoid data leakage, and mention how you would handle feature versioning and schema evolution to support model iteration.

1. Clarify Requirements and Constraints

Ask about scale (QPS, feature count, data volume), latency requirements, consistency needs, and existing infrastructure. This ensures your design is tailored to DoorDash's context.

2. Design Unified Feature Definition and Transformation

Propose a declarative feature definition (e.g., using a DSL) that specifies how features are computed from raw data. This ensures consistency between online and offline pipelines.

3. Architect Dual Storage for Online and Offline

Use a low-latency store (e.g., Redis, DynamoDB) for online serving and a columnar store (e.g., Parquet on S3, BigQuery) for offline training. Discuss how to sync data between them.

4. Implement Ingestion and Transformation Pipelines

Design streaming (e.g., Kafka, Flink) and batch (e.g., Spark) pipelines to compute features. Ensure they use the same transformation logic to avoid training-serving skew.

5. Address Operational Concerns

Cover monitoring (data quality, freshness, drift), backfilling, versioning, and access control. Discuss how to handle failures and ensure reliability.

Key Points to Mention

  • Training-serving skew and how to avoid it via shared transformation code
  • Point-in-time correctness for offline feature retrieval to prevent data leakage
  • Low-latency online serving with high throughput and availability
  • Feature versioning and schema evolution for model iteration
  • Data freshness and backfilling strategies for new features
  • Monitoring and alerting for data quality and drift

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

Q4

How do you handle traffic scaling and high QPS for a recommendation serving system, and what are your latency budgets at each layer?

System DesignTechnical Trade-offs
Author's notes

I talked about horizontal scaling of the retrieval service, request coalescing for repeated queries in a short window, and async prefetching for predictable traffic patterns like meal times.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the scale (QPS, latency SLOs, hardware) and then walk through the serving architecture layer by layer, explaining how each layer scales and its latency budget. Emphasize trade-offs between latency, cost, and freshness, and how you'd monitor and adapt to traffic spikes.

Pro tip: Anchor your answer in concrete numbers (e.g., p99 latency targets) and explain how you'd degrade gracefully under extreme load—interviewers love hearing about fallbacks like cached or heuristic recommendations.

1. Clarify requirements and constraints

Ask about expected QPS, peak-to-average ratio, latency SLOs, hardware budget, and freshness requirements. This shows you don't jump to solutions without understanding the problem.

2. Outline the serving architecture

Describe the high-level flow: client -> API gateway -> recommendation service -> feature store / model inference -> candidate retrieval -> ranking -> post-processing. Mention caching layers at each stage.

3. Assign latency budgets per layer

Propose a total budget (e.g., 200ms p99) and break it down: 10ms gateway, 20ms feature fetch, 50ms candidate retrieval, 80ms ranking, 20ms post-processing, 20ms network overhead. Justify with typical numbers.

4. Explain scaling strategies per layer

For each layer, discuss horizontal scaling (stateless services, sharding), caching (CDN, Redis, local caches), async processing, and load shedding. Mention autoscaling and capacity planning.

5. Discuss trade-offs and failure modes

Cover trade-offs like latency vs. accuracy (e.g., using approximate nearest neighbor vs. exact), cost vs. performance, and how to handle overload (graceful degradation, fallback to popular items).

Key Points to Mention

  • Use of caching at multiple levels: CDN for static assets, Redis for feature/user embeddings, local in-memory caches for hot items.
  • Horizontal scaling with stateless services and sharding for stateful components like feature stores.
  • Latency budgets: e.g., 200ms total p99, with breakdowns like 50ms for retrieval, 80ms for ranking, etc.
  • Techniques for high QPS: batching, async I/O, connection pooling, and efficient serialization (e.g., Protobuf).
  • Graceful degradation: fallback to cached or heuristic recommendations when load exceeds capacity.
  • Monitoring and autoscaling: track QPS, latency, error rates, and use predictive scaling for traffic spikes.

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

Q5

How would you manage fan-out in a recommendation system where a single request triggers many downstream lookups?

System DesignAPI & Integrations
Author's notes

Short answer: scatter-gather with a deadline.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the scale and latency requirements, then propose a multi-layered fan-out strategy that combines parallelization, caching, and precomputation to reduce downstream calls. Emphasize trade-offs between consistency, latency, and cost, and explain how you would monitor and adapt the system under load.

Pro tip: Mention that fan-out is often a symptom of a monolithic recommendation service; decomposing into specialized services with async communication can drastically reduce synchronous fan-out. Also, highlight the importance of setting aggressive timeouts and fallbacks to prevent cascading failures.

1. Clarify Requirements and Constraints

Ask about expected QPS, latency SLOs, data freshness requirements, and the number of downstream services. This ensures your solution is tailored to the actual problem.

2. Identify Fan-Out Sources and Patterns

Map out which downstream lookups are triggered per request (e.g., user profile, item features, real-time signals) and categorize them as cacheable, precomputable, or strictly real-time.

3. Design a Multi-Layered Fan-Out Strategy

Propose parallelizing independent calls, using request coalescing, caching, and precomputing heavy aggregations. Consider async processing with message queues for non-critical lookups.

4. Address Failure Modes and Trade-Offs

Discuss timeouts, circuit breakers, fallbacks, and degradation strategies. Explain how you balance consistency vs. latency and cost vs. performance.

5. Monitor, Iterate, and Scale

Outline metrics (latency, error rates, cache hit ratios) and mechanisms to dynamically adjust fan-out (e.g., adaptive timeouts, load shedding).

Key Points to Mention

  • Parallelizing independent downstream calls using futures or async I/O to reduce overall latency.
  • Caching strategies (e.g., Redis, local caches) with appropriate TTLs and invalidation policies for frequently accessed data.
  • Precomputation and offline aggregation (e.g., batch jobs, materialized views) for non-real-time features.
  • Request coalescing and batching to merge multiple similar downstream requests into one.
  • Asynchronous processing with message queues (e.g., Kafka, SQS) for non-blocking, fire-and-forget lookups.
  • Resilience patterns: timeouts, circuit breakers, fallbacks, and graceful degradation to maintain availability.

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

Q6

How do you roll out a new recommendation model version without disrupting live serving?

System DesignA/B Testing & Experimentation
Author's notes

Went with shadow mode first, then a small traffic slice with a feature flag, then gradual ramp with automated rollback triggers based on latency and engagement metrics.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by outlining a phased rollout strategy that includes offline evaluation, shadow deployment, and gradual traffic shifting with A/B testing. Emphasize the importance of monitoring key metrics and having rollback mechanisms to ensure a safe and controlled release.

Pro tip: Highlight the need to align with business metrics and define clear success criteria before the rollout, as this shows you understand the broader impact beyond technical metrics.

1. Offline Evaluation

Validate the new model offline using historical data and key metrics to ensure it meets performance and business goals before any live testing.

2. Shadow Deployment

Deploy the new model in shadow mode alongside the current model to compare predictions in real-time without affecting user experience.

3. Canary Release

Gradually route a small percentage of live traffic to the new model, monitoring system health and business metrics closely for any anomalies.

4. A/B Testing

Run a controlled A/B test with a larger traffic split to measure the new model's impact on key metrics and determine statistical significance.

5. Full Rollout and Monitoring

If the A/B test is successful, ramp up to 100% traffic while continuously monitoring performance and having a rollback plan ready.

Key Points to Mention

  • Offline evaluation metrics (e.g., AUC, NDCG, business KPIs)
  • Shadow deployment to catch discrepancies without user impact
  • Gradual traffic shifting (canary release) with automated rollback triggers
  • A/B testing framework with control and treatment groups
  • Monitoring and alerting for system health and business metrics
  • Rollback strategy and versioning of models

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