← DoorDash Interview Insights

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

SeniorPrefer not to say
Jun 2026

Summary

DoorDash system design round focused on building a review platform end-to-end, including voting mechanics and a bonus payout system. Solid problem with a lot of moving parts, probably more than I expected for a single session.

Questions Asked (1)

Q1

Design a review system where users can post reviews on purchased items, vote reviews up or down (with toggle support), query reviews with multiple sort options and pagination, and automatically issue a $10 bonus to reviewers for every 1,000 net up-votes earned.

System DesignData ModelingTechnical Trade-offs
Author's notes

I spent way too long on the review storage schema and barely had time left for the reward ledger, which is clearly the spiciest part of the problem.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying functional and non-functional requirements, then design the data model and API. Focus on the core challenges: vote toggling, efficient querying with sorting and pagination, and reliable bonus issuance. Discuss trade-offs and scalability.

Pro tip: Emphasize idempotency and exactly-once processing for bonus issuance to avoid duplicate payments, and consider using a ledger or transaction log for auditability.

1. Clarify Requirements

Ask about scale, read/write patterns, consistency needs, and bonus rules. Confirm that only verified purchasers can review, and votes can be toggled.

2. Design Data Model

Propose tables for reviews, votes, and bonuses. Include fields for user, item, review text, vote type, and timestamps. Consider using a composite key for votes to enforce one vote per user per review.

3. Design APIs and Query Logic

Define endpoints for posting reviews, voting, and fetching reviews with sorting (e.g., by date, helpfulness) and pagination. Discuss how to efficiently compute net up-votes and handle toggles.

4. Bonus Issuance

Design a system to track net up-votes per reviewer and trigger a $10 bonus for every 1,000 net up-votes. Use a background job or event-driven approach with idempotency.

5. Scalability and Trade-offs

Discuss caching, sharding, and consistency trade-offs. Consider using a message queue for vote processing and bonus calculation to decouple components.

Key Points to Mention

  • Idempotent vote handling to support toggling and prevent double-counting
  • Efficient pagination and sorting using indexes or materialized views
  • Exactly-once bonus issuance with a ledger or transaction log
  • Use of caching for hot reviews and counters
  • Sharding strategies for reviews and votes by item or user
  • Event-driven architecture for bonus calculation (e.g., Kafka, SQS)

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