Design a 3-day donation platform
DoorDashSoftware Engineer · OnsiteLast updated
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.
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.
Solution walkthrough is for members
Get the full walkthrough with reference code and complexity analysis, plus Kitty Coach at 300 messages a day. Hints, the code runner and community answers stay free.