← Coinbase Interview Insights

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

SeniorPrefer not to say
Jun 2026

Summary

System design round at Coinbase for a software engineering role. The whole thing was basically one big question about building a banking system from scratch, and it went pretty deep into territory I wasn't fully prepped for.

Questions Asked (1)

Q1

Design and implement a basic online banking system that supports account creation, deposits, withdrawals, and transfers between users. Cover the data model, API design, atomicity and idempotency of money movements, double-spend prevention under concurrent load, an immutable audit trail, security concerns, and consistency guarantees.

System DesignData ModelingTechnical Trade-offs
Author's notes

This question is basically a whole interview compressed into one prompt.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scale, then design a data model with accounts and a double-entry ledger for auditability. Focus on atomicity and idempotency for money movements, and discuss concurrency control and consistency trade-offs. Finally, address security and operational concerns.

Pro tip: Emphasize idempotency keys for all money movement APIs to prevent duplicate transactions, and use a double-entry ledger to ensure auditability and consistency. This shows you understand financial systems' critical requirements.

1. Clarify Requirements and Scale

Ask about expected scale (users, transactions per second), consistency requirements, and regulatory constraints. This shapes your design choices.

2. Design Data Model and Ledger

Propose a double-entry ledger with accounts, transactions, and entries. Include an immutable audit log for all changes.

3. Define API and Idempotency

Design RESTful APIs for account creation, deposit, withdrawal, and transfer. Use idempotency keys to ensure safe retries.

4. Ensure Atomicity and Concurrency Control

Use database transactions with appropriate isolation levels (e.g., serializable) or optimistic locking to prevent double-spend. Discuss distributed transactions if needed.

5. Address Security and Consistency

Cover authentication, authorization, encryption, and fraud detection. Discuss consistency guarantees (e.g., strong vs eventual) and how to achieve them.

Key Points to Mention

  • Double-entry ledger for auditability and consistency
  • Idempotency keys for all money movement APIs
  • Database transactions with serializable isolation or optimistic locking
  • Immutable audit trail using append-only logs or event sourcing
  • Security: encryption, authentication, authorization, and rate limiting
  • Consistency trade-offs: strong consistency for balances vs eventual for notifications

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