We use cookies for site analytics. Accept to help us understand how the site is used. See our Privacy Policy for details.
Idempotency keys, double-spend prevention, the ledger model, and why eventual consistency is wrong for balances. The interview where ambiguity costs you money.
Design a payments backend that accepts charge requests, talks to one or more payment processors (card networks, ACH, wallets), records the result in a durable ledger, and exposes status to callers via API responses and webhooks. Support refunds, partial refunds, retries on transient processor errors, and reconciliation against processor settlements.
This problem is graded on correctness obsession, not throughput. Strong candidates open with the two failure modes that ruin a payments system - duplicate charges and lost charges - and design every component to make each impossible. Weak candidates focus on scale and miss the actual interview signal.
Asking these before diving into a solution is the difference between a "hire" and a "no signal" rating. Pick the questions whose answers would change your design.
Capacity estimation · architecture with all 9 components explained · 7 deep dives · trade-off analysis · 8 common follow-up questions
Get full access to gitGood.dev with a subscription.
Try everything free for 10 days. Cancel anytime.
10-day trial, then $5/mo - or $40/yr ($3.33/mo, save 33%). Cancel anytime.
Five algorithms, three sharding strategies, one fail-open vs fail-closed decision. The bounded design that surfaces in every backend interview loop.
Consistent hashing, eviction, replication, and what really happens when a single hot key takes down the cluster.
Reading is the floor. The interview signal is in walking through this live with someone probing follow-ups. Use the AI mock interview to practice talking through requirements, architecture, and trade-offs out loud.
Start an AI mock interview →