← Coinbase Interview Insights

Coinbase·Software Engineer·Technical Phone Screen·Senior

Senior
Jun 2026

Summary

Coinbase software engineer interview that was basically one big design problem covering account creation, deposits, transfers, payment flows, and cashback logic. Pretty involved for a single session, lots of edge cases to track.

Questions Asked (1)

Q1

Design an account management system with operations for creating accounts, depositing funds, transferring between accounts, tracking top spenders, processing payments with cashback, and querying payment status.

System DesignData ModelingAPI & Integrations
Author's notes

This thing kept growing.

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 and API for core operations (create, deposit, transfer). For advanced features like top spenders, cashback, and payment status, discuss appropriate data structures (e.g., heaps, indexes) and consistency guarantees, emphasizing idempotency and transactional integrity.

Pro tip: Demonstrate awareness of financial system constraints: highlight idempotency keys for transfers and payments, and discuss how to handle race conditions in concurrent balance updates using optimistic locking or serializable transactions.

1. Clarify Requirements and Scale

Ask about expected throughput, consistency needs, and whether the system is for internal or external use. Clarify if top spenders are global or per time window, and cashback rules.

2. Design Data Model and Storage

Define entities: Account (id, balance, owner), Transaction (id, from, to, amount, status, timestamp), Payment (id, account, amount, cashback, status). Choose a relational DB for ACID or NoSQL for scale, and discuss indexing for queries.

3. Define API and Core Operations

Outline RESTful endpoints: POST /accounts, POST /accounts/{id}/deposit, POST /transfers, GET /accounts/top-spenders, POST /payments, GET /payments/{id}. Specify request/response schemas and idempotency keys.

4. Address Advanced Features

For top spenders, use a sorted set or maintain a leaderboard with periodic updates. For cashback, calculate on payment success and credit asynchronously. For payment status, use a state machine (pending, completed, failed) with webhooks or polling.

5. Discuss Consistency, Scalability, and Trade-offs

Explain how to ensure atomic transfers (e.g., two-phase commit or sagas), handle idempotency, and scale reads with replicas. Discuss trade-offs between strong and eventual consistency for top spenders.

Key Points to Mention

  • Idempotency keys for transfers and payments to prevent duplicate processing
  • Transactional integrity for balance updates (e.g., using database transactions or optimistic locking)
  • Data structures for top spenders: sorted sets, heaps, or materialized views with periodic refresh
  • Cashback calculation and crediting: synchronous vs asynchronous, and how to handle failures
  • Payment status tracking: state machine, event sourcing, or webhooks for real-time updates
  • Scalability considerations: sharding by account ID, read replicas, and caching for hot accounts

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