Topic drills
Pick a topic and run the same fixed format every time: name it → explain out loud (mic) → code it → edge cases → say the trade-off (mic) → follow-up → catch the bug. Never start from a blank slate.
- IdempotencyA retried request must not double-apply.
- State machine (status lifecycle)A status change is a guarded business event, not a field write.
- Optimistic lockingConcurrent edits: detect the conflict instead of clobbering the winner.
- Pessimistic / row-level lockingSerialize a read-modify-write across instances.
- Distributed lockOne scheduled job runs exactly once across many servers.
- Event processing (dedup + order)Per-entity final state from an at-least-once, reordered stream.
- ReconciliationCompare two sources that should agree; flag or repair the drift.
- LRU / TTL cacheA bounded cache that evicts least-recently-used and expires entries.
- Queue / worker / retry / DLQAsync work that survives failure instead of losing it.
- System designLead with the default architecture, then survive the deep-dive probes.