← DoorDash Interview Insights

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

SeniorPrefer not to say
Jun 2026

Summary

DoorDash system design round focused entirely on building a restaurant review platform. Pretty dense scope for a single session, covering everything from photo storage to ML moderation pipelines.

Questions Asked (4)

Q1

Design a food and restaurant review system. Include the ability to post reviews with ratings, text, and photos; browse and sort reviews with pagination; owner responses; and upvoting reviews for helpfulness.

System DesignTechnical Trade-offsData Modeling
Author's notes

This one sprawled fast.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying functional and non-functional requirements, then estimate scale (e.g., 10M users, 100M reviews). Design a high-level architecture with separate services for reviews, media, and search, and dive into data modeling, storage choices, and trade-offs for sorting, pagination, and upvoting.

Pro tip: Emphasize trade-offs between consistency and availability for upvotes and owner responses, and discuss how to handle media storage efficiently with CDNs and object stores. Also, mention the importance of denormalization for read-heavy review browsing.

1. Clarify Requirements and Scale

Ask questions to understand functional needs (e.g., review posting, sorting, upvoting) and non-functional needs (e.g., latency, consistency). Estimate scale: number of users, reviews, photos, and read/write ratios.

2. High-Level Architecture

Outline main components: API gateway, review service, media service, search service, and databases. Consider using a CDN for photos and a message queue for asynchronous tasks like photo processing.

3. Data Modeling and Storage

Design schemas for reviews, users, restaurants, and upvotes. Choose databases: e.g., SQL for transactional data, NoSQL for scalability, and search engine (Elasticsearch) for browsing/sorting. Discuss indexing for sorting by rating, date, helpfulness.

4. Key Features Implementation

Detail how to implement pagination (cursor-based vs offset), sorting (by rating, date, helpfulness), owner responses (linking to reviews), and upvoting (idempotency, counters, eventual consistency).

5. Trade-offs and Scalability

Discuss trade-offs: consistency vs availability for upvotes, denormalization for read performance, media storage costs, and sharding strategies. Address bottlenecks and how to scale (e.g., caching, read replicas).

Key Points to Mention

  • Cursor-based pagination for stable sorting and performance at scale
  • Denormalization of review data (e.g., storing helpfulness count) for fast reads
  • Use of CDN and object storage (e.g., S3) for photo uploads and delivery
  • Idempotent upvoting and handling of concurrent updates (e.g., using Redis counters)
  • Owner responses as a separate entity linked to reviews, with notifications
  • Search indexing (Elasticsearch) for flexible sorting and filtering

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

Q2

How would you handle high read throughput and abuse resistance for a review platform at scale?

System DesignTechnical Trade-offs
Author's notes

Read-heavy systems I'm comfortable with so caching felt obvious, but the abuse resistance part tripped me up a bit.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the scale (e.g., read QPS, data volume) and the types of abuse (spam, fake reviews, scraping). Then propose a layered architecture: caching, read replicas, and CDN for reads; rate limiting, anomaly detection, and moderation pipelines for abuse. Discuss trade-offs between consistency, latency, and cost, and how you would monitor and iterate.

Pro tip: Emphasize that abuse resistance is not just about blocking bad actors but also about designing for graceful degradation and fast recovery, and that you would use a feedback loop from user reports to continuously improve detection.

1. Clarify requirements and scale

Ask about expected read throughput (e.g., QPS), data size, latency SLAs, and the nature of abuse (spam, fake reviews, scraping). This ensures your design targets the right problems.

2. Design for high read throughput

Propose a multi-layer caching strategy (CDN, application cache, database cache), read replicas, and possibly denormalization or materialized views. Consider using a NoSQL store for horizontal scaling if needed.

3. Implement abuse resistance

Outline rate limiting per user/IP, CAPTCHA for suspicious activity, anomaly detection using ML, and a moderation pipeline (automated + human). Also consider write-time validation and post-hoc analysis.

4. Address trade-offs and consistency

Discuss trade-offs: caching vs. freshness, strict moderation vs. user experience, cost vs. performance. Explain how you would handle eventual consistency and conflict resolution.

5. Monitor, iterate, and scale

Describe monitoring metrics (latency, error rates, abuse detection rates), alerting, and a feedback loop to improve abuse detection. Mention auto-scaling and capacity planning.

Key Points to Mention

  • Caching strategies (CDN, Redis, local cache) and cache invalidation
  • Database scaling: read replicas, sharding, denormalization
  • Rate limiting and throttling techniques (token bucket, leaky bucket)
  • Anomaly detection and machine learning for abuse prevention
  • Moderation pipeline: automated filters + human review
  • Trade-offs: consistency vs. availability, cost vs. performance, security vs. usability

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

Q3

Walk through a moderation pipeline for user-generated review content, including both rule-based filtering and ML-based approaches.

System DesignTechnical Trade-offs
Author's notes

Went rules-first (profanity filters, spam patterns) then described an async ML scoring queue.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the requirements and scale (e.g., review volume, latency, and moderation goals), then outline a multi-stage pipeline that combines fast rule-based filtering with ML models for nuanced decisions. Emphasize trade-offs between precision/recall, latency, and cost, and explain how human review fits in for edge cases.

Pro tip: Highlight the importance of a feedback loop where human moderation decisions are used to continuously retrain and improve the ML models, and discuss how to handle adversarial users who try to evade filters.

1. Clarify Requirements and Constraints

Ask about scale (reviews per second), latency requirements, moderation goals (e.g., spam, profanity, fake reviews), and acceptable false positive/negative rates. This ensures your design aligns with business needs.

2. Design Rule-Based Pre-Filtering

Propose a fast, deterministic layer using regex, blocklists, and heuristics to catch obvious violations (e.g., profanity, spam links) and reduce load on ML models. Discuss how to maintain and update rules.

3. Integrate ML Models for Nuanced Classification

Describe using ML models (e.g., text classification, sentiment analysis) to handle ambiguous cases, such as sarcasm, context-dependent toxicity, or fake reviews. Mention model selection, feature engineering, and threshold tuning.

4. Incorporate Human Review and Feedback Loop

Explain how low-confidence predictions or appeals are routed to human moderators, and how their decisions are fed back to retrain models, improving accuracy over time.

5. Address Scalability, Monitoring, and Trade-offs

Discuss scaling the pipeline (e.g., async processing, caching), monitoring for drift and adversarial attacks, and trade-offs between latency, cost, and accuracy.

Key Points to Mention

  • Two-stage approach: fast rule-based filtering followed by ML for nuanced decisions
  • Trade-offs between precision and recall, and how to tune thresholds based on business impact
  • Handling adversarial content and evolving language (e.g., obfuscated profanity)
  • Feedback loop from human moderation to model retraining
  • Latency and cost considerations, including asynchronous processing and model serving
  • Monitoring and alerting for model drift and pipeline health

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

Q4

How would you aggregate review ratings and helpfulness signals to feed into restaurant-level rankings?

System DesignProduct Analytics & MetricsData Modeling
Author's notes

This felt like the most interesting part to me.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the goal: produce a robust, fair restaurant ranking that balances average rating with confidence and helpfulness signals. Then outline a pipeline: collect and clean review data, compute a Bayesian-adjusted rating, incorporate helpfulness-weighted signals, and aggregate to restaurant level with time decay. Finally, discuss how to combine these into a single ranking score and validate it.

Pro tip: Emphasize that raw average ratings are misleading for restaurants with few reviews; using a Bayesian prior or Wilson score interval shows statistical maturity. Also mention that helpfulness signals should be weighted by reviewer credibility to avoid gaming.

1. Clarify Requirements and Data Sources

Ask about the ranking's purpose (e.g., search, recommendations) and available data: review ratings, helpfulness votes, timestamps, reviewer history. Confirm if real-time or batch processing is needed.

2. Compute Adjusted Rating per Restaurant

Use a Bayesian average (e.g., (C * m + sum(ratings)) / (C + n)) to shrink low-volume restaurants toward the global mean. Alternatively, use a Wilson score interval for binary ratings.

3. Incorporate Helpfulness Signals

Weight each review's rating by its helpfulness score (e.g., upvotes minus downvotes) and reviewer credibility (e.g., historical helpfulness). Aggregate weighted ratings to get a helpfulness-adjusted rating.

4. Apply Time Decay and Aggregate

Apply exponential time decay to older reviews so recent feedback matters more. Combine the adjusted rating and helpfulness signals into a single score, possibly with a weighted sum or machine learning model.

5. Validate and Iterate

Validate the ranking with offline metrics (e.g., correlation with user engagement) and A/B tests. Monitor for bias and gaming, and iterate on weights and decay parameters.

Key Points to Mention

  • Bayesian average or Wilson score interval to handle low review counts
  • Helpfulness weighting: upvotes/downvotes and reviewer credibility
  • Time decay to prioritize recent reviews
  • Aggregation method: weighted sum or ML model to combine signals
  • Scalability: batch vs. streaming processing (e.g., Spark, Flink)
  • Validation: offline metrics and online A/B testing

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