Design a 3-day donation platform
Company: DoorDash
Role: Software Engineer
Category: System Design
Difficulty: hard
Interview Round: Onsite
Design an online donation platform optimized for 3-day campaigns. Specify functional requirements (donor signup, campaign setup, real-time totals, receipts, refunds), non-functional goals (availability SLOs, latency budgets, throughput), and traffic estimates. Propose APIs and data models (Campaign, Donation, Donor, PaymentIntent, Receipt). Detail payment processing with idempotency, retry and reconciliation flows; fraud and abuse mitigation; rate limiting; and privacy/compliance considerations (PCI, PII, CCPA/GDPR). Describe architecture (services, databases, caches, queues), scaling and sharding strategy, consistency model for counters, and how you’d handle launch/closing traffic spikes. Explain observability (metrics, logs, tracing), disaster recovery, backfills, and how to extend to recurring donations or corporate matching.
Quick Answer: This question evaluates competency in designing scalable, highly available payment-enabled distributed systems, including skills in traffic spike handling, idempotency and reconciliation, real-time totals and leaderboards, latency and throughput planning, and compliance/privacy considerations.