← DoorDash Interview Insights

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

SeniorPrefer not to say
Jun 2026

Summary

DoorDash system design round, one big question about building a cashback system for reviewers. Dense problem with a lot of moving parts and I don't think I covered everything they wanted.

Questions Asked (1)

Q1

Design a cashback system that rewards users for writing reviews based on how many upvotes those reviews receive. Cover the data schema, idempotency for vote events, fraud prevention, eligibility rules, async processing pipeline, and reporting.

System DesignData ModelingTechnical Trade-offs
Author's notes

This one sprawled fast.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scale, then design a high-level architecture that separates vote ingestion, reward calculation, and reporting. Focus on idempotency, fraud prevention, and async processing to ensure correctness and scalability, and discuss trade-offs for each component.

Pro tip: Emphasize idempotency and fraud prevention early, as they are critical in financial systems; also, propose a phased rollout with monitoring to catch issues before full launch.

1. Clarify Requirements and Scale

Ask questions to understand expected traffic, reward rules (e.g., cashback per upvote), eligibility criteria, and reporting needs. Establish non-functional requirements like latency, consistency, and fraud tolerance.

2. Design Data Schema

Propose tables for users, reviews, votes, rewards, and fraud signals. Include fields for idempotency keys, timestamps, and statuses to track processing.

3. Ensure Idempotency and Fraud Prevention

Use unique constraints or idempotency keys on vote events to prevent double-counting. Implement fraud detection with rate limiting, anomaly detection, and manual review queues.

4. Build Async Processing Pipeline

Design a pipeline where vote events are queued (e.g., Kafka), processed by workers that validate, deduplicate, and update reward balances. Use idempotent consumers and dead-letter queues for failures.

5. Implement Reporting and Monitoring

Create aggregated views or dashboards for real-time and historical reporting. Include alerts for fraud spikes, processing delays, and reward discrepancies.

Key Points to Mention

  • Idempotency keys for vote events to handle retries and duplicates
  • Fraud prevention: rate limiting, anomaly detection, and manual review
  • Eligibility rules: minimum review length, account age, and upvote thresholds
  • Async processing with message queues and idempotent consumers
  • Data schema design with proper indexes and constraints
  • Reporting: aggregated metrics, dashboards, and audit trails

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