← Coinbase Interview Insights

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

Senior
Apr 2026

Summary

System design round at Coinbase for a software engineer role, focused entirely on designing the 'Explore' feature you see in the app for browsing crypto assets. Pretty deep dive, covered a lot of ground in one session.

Questions Asked (7)

Q1

Design the Coinbase Explore feature: an in-app surface where users can browse curated crypto asset lists like trending, top movers, new listings, and themed categories.

System DesignProduct Sense & IdeationTechnical Trade-offs
Author's notes

This is the core question and it sprawls fast.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the product requirements and scope, then design a scalable backend that supports dynamic curation and personalization. Focus on data models, APIs, caching, and trade-offs between freshness and performance.

Pro tip: Emphasize how you would measure success and iterate—Coinbase values data-driven product decisions. Also, mention regulatory considerations for listing assets, as compliance is critical in crypto.

1. Clarify Requirements

Ask questions to understand the scope: target users, expected scale, update frequency, personalization needs, and regulatory constraints. Confirm whether lists are manually curated or algorithmically generated.

2. High-Level Design

Outline the main components: client (mobile/web), API gateway, backend services for list management, data sources (market data, user activity), and caching layers. Sketch how data flows from sources to the user.

3. Data Model & Curation

Define how lists are stored and updated. Consider a flexible schema for lists (e.g., list metadata, items with scores). Discuss curation strategies: manual, algorithmic (trending based on volume/price changes), or hybrid.

4. API & Scalability

Design APIs for fetching lists (e.g., GET /explore/lists). Address scalability: caching (CDN, Redis), pagination, rate limiting, and handling high read traffic. Discuss real-time updates vs. batch processing.

5. Trade-offs & Metrics

Discuss trade-offs: freshness vs. cost, personalization vs. privacy, manual vs. algorithmic curation. Define success metrics (engagement, retention) and how to A/B test features.

Key Points to Mention

  • Caching strategies (e.g., Redis, CDN) to handle read-heavy traffic and reduce latency.
  • Data pipeline for market data and user activity to compute trending and top movers.
  • Personalization techniques (collaborative filtering, user segmentation) while respecting privacy.
  • Regulatory and compliance considerations for listing assets (e.g., SEC, regional restrictions).
  • Trade-offs between real-time updates and batch processing for list freshness.
  • Monitoring and A/B testing framework to measure feature impact and iterate.

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

Q2

How would you design the data model to support browsing categories, asset metadata, and real-time price and volume information?

Data ModelingSystem Design
Author's notes

Went with a pretty standard relational model for asset metadata and editorial content, then a separate time-series store for price and volume ticks.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the requirements and access patterns, then propose a hybrid data model that separates static metadata from dynamic price/volume data. Use appropriate storage technologies for each component and discuss trade-offs around consistency, latency, and scalability.

Pro tip: Emphasize the importance of separating hot (real-time) and cold (historical) data, and mention how you would handle data consistency across distributed systems. This shows you understand the practical challenges of building a real-time financial data platform.

1. Clarify Requirements and Access Patterns

Ask questions to understand the scale, read/write patterns, latency requirements, and consistency needs. Identify key queries such as browsing categories, fetching asset metadata, and subscribing to real-time updates.

2. Design the Data Model

Propose a schema that separates entities: categories, assets, and price/volume data. Consider using a relational database for metadata and a time-series or in-memory store for real-time data.

3. Choose Storage Technologies

Select appropriate databases: e.g., PostgreSQL for metadata, Redis for caching and real-time pub/sub, and a time-series database like InfluxDB or a streaming platform like Kafka for price/volume data.

4. Address Scalability and Consistency

Discuss how to scale reads/writes, handle eventual consistency, and ensure data integrity. Mention partitioning, replication, and caching strategies.

5. Discuss Trade-offs and Alternatives

Acknowledge trade-offs between consistency and availability, latency and cost, and explain why your choices are suitable for Coinbase's use case.

Key Points to Mention

  • Separation of static metadata and dynamic price/volume data
  • Use of time-series databases or streaming platforms for real-time data
  • Caching strategies to reduce latency for frequently accessed data
  • Data partitioning and replication for scalability and fault tolerance
  • Eventual consistency vs strong consistency and their implications
  • API design for efficient browsing and subscription to updates

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

Q3

Walk through your caching strategy for a feature like this that needs low read latency globally and handles very high read QPS.

System DesignTechnical Trade-offs
Author's notes

CDN at the edge for category page snapshots, in-memory cache closer to the app servers for price data with short TTLs, maybe 5-10 seconds.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the requirements: global low-latency reads, high QPS, and data characteristics (e.g., read/write ratio, consistency needs). Then propose a multi-tier caching architecture (CDN, edge, regional, local) with appropriate eviction and invalidation strategies, and discuss trade-offs like consistency vs. latency and cost.

Pro tip: Emphasize cache invalidation and stampede protection (e.g., using leases or probabilistic early expiration) as these are often overlooked but critical for high-QPS systems. Also, mention monitoring cache hit ratio and latency to validate the strategy.

1. Clarify Requirements and Constraints

Ask about data size, read/write ratio, consistency requirements (strong vs. eventual), and budget. This shapes the caching layers and invalidation approach.

2. Design Multi-Layer Cache Hierarchy

Propose layers: CDN for static/edge-cacheable content, regional caches (e.g., Redis) close to users, and local in-memory caches (e.g., Guava) for hot data. Explain how each reduces latency and load.

3. Define Cache Population and Eviction Policies

Discuss cache-aside vs. write-through, TTLs, and eviction policies (LRU, LFU). For high QPS, consider proactive refresh and negative caching.

4. Address Invalidation and Consistency

Describe how to handle updates: pub/sub invalidation, versioned keys, or short TTLs. Acknowledge trade-offs between consistency and latency.

5. Mitigate Risks and Monitor

Cover cache stampede prevention (e.g., single-flight, jittered TTLs), hot key mitigation, and monitoring (hit ratio, latency, eviction rates).

Key Points to Mention

  • CDN and edge caching for global low latency
  • Regional Redis clusters with replication
  • Local in-memory caches for ultra-hot data
  • Cache invalidation strategies (TTL, pub/sub, versioning)
  • Cache stampede prevention (leases, probabilistic early expiration)
  • Monitoring and metrics (hit ratio, latency, eviction rates)

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

Q4

How would you design the price feed ingestion pipeline to keep asset prices and volume data fresh across the platform?

System DesignAPI & Integrations
Author's notes

Pulled from exchange websocket feeds, normalize and fan out through a message queue, consumers update the cache and write to the time-series store.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements: which assets, required freshness (e.g., sub-second for trading, seconds for UI), data sources (exchanges, aggregators), and scale. Then propose a pipeline that ingests from multiple sources, normalizes data, and publishes to a low-latency store with appropriate caching and fan-out to consumers.

Pro tip: Emphasize the need for a unified schema and idempotent processing to handle duplicate or out-of-order messages, and discuss how to gracefully degrade when a source becomes stale or unavailable.

1. Clarify Requirements and Constraints

Ask about asset coverage, required freshness (latency), data sources, expected throughput, and consistency needs. This shapes the entire design.

2. Design Ingestion Layer

Use a scalable message queue (e.g., Kafka) to decouple producers from consumers. Implement connectors for each data source (WebSocket, REST polling) with backpressure handling.

3. Normalization and Enrichment

Transform raw data into a canonical schema, validate, and enrich with metadata (e.g., asset IDs). Ensure idempotency and handle out-of-order events.

4. Storage and Serving

Write to a low-latency store (e.g., Redis, in-memory cache) for real-time reads, and a durable store (e.g., time-series DB) for history. Use pub/sub to fan out updates to consumers.

5. Monitoring and Failover

Monitor freshness, throughput, and errors. Implement fallback sources and alerting for stale data. Ensure graceful degradation.

Key Points to Mention

  • Use of Kafka or similar for decoupling and scalability
  • Idempotent processing and exactly-once semantics
  • Low-latency storage like Redis for real-time price serving
  • Handling out-of-order and duplicate messages
  • Monitoring data freshness and alerting on staleness
  • Fallback mechanisms for source failures

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

Q5

How would you build the ranking logic behind a 'trending' list, and how do you handle personalization on top of that?

System DesignProduct Analytics & MetricsAlgorithms & Data Structures
Author's notes

Talked about a composite score using volume change, price movement, and search spike signals, computed in a batch job every few minutes.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by defining what 'trending' means for Coinbase—likely a combination of recency, velocity, and engagement—then propose a scalable ranking pipeline that computes scores in batch and serves them with low latency. Next, layer personalization by blending global trending scores with user-specific signals (e.g., holdings, watchlists, past behavior) via a lightweight re-ranking model, and discuss how to evaluate and iterate using A/B tests.

Pro tip: Emphasize the cold-start problem: new users or new assets have little data, so you need fallback strategies (e.g., global trends, content-based similarity) and a way to gradually introduce personalization as data accumulates.

1. Define 'Trending' and Metrics

Clarify what trending means for Coinbase (e.g., assets with rapid price movement, high trading volume, or social buzz) and select measurable signals like volume, price change, and user interactions.

2. Design the Ranking Pipeline

Propose a two-stage system: offline batch jobs compute global trending scores using a time-decayed formula (e.g., Hacker News style), and an online service serves these scores with caching for low latency.

3. Add Personalization Layer

Blend global scores with user-specific features (e.g., holdings, watchlist, past clicks) using a weighted sum or a simple ML model, ensuring personalization doesn't completely override global trends.

4. Address Scalability and Freshness

Discuss how to handle high throughput and real-time updates: use stream processing (e.g., Kafka, Flink) for near-real-time signals, and design for horizontal scaling with sharding and replication.

5. Evaluate and Iterate

Define success metrics (e.g., CTR, engagement, retention) and propose A/B testing to measure the impact of ranking changes, including guardrail metrics to avoid filter bubbles.

Key Points to Mention

  • Time-decayed scoring (e.g., exponential decay) to balance recency and popularity
  • Two-stage architecture: offline computation + online serving with caching
  • Personalization via feature blending (global + user-specific) and cold-start fallbacks
  • Scalability considerations: stream processing, sharding, and low-latency serving
  • Evaluation metrics and A/B testing framework
  • Ethical considerations: avoiding filter bubbles and ensuring diverse content

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

Q6

How do you reconcile editorial curation with algorithmic ranking? What happens when a human-curated list conflicts with what the algorithm would surface?

Product Sense & IdeationTechnical Trade-offsCross-functional Alignment
Author's notes

This tripped me up more than it should have.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Frame the answer around a clear product philosophy: curation and algorithms serve different goals, and conflicts should be resolved by defined principles like user trust, regulatory compliance, and measurable outcomes. Walk through a concrete process for detecting and resolving conflicts, emphasizing cross-functional collaboration and iterative learning.

Pro tip: Show you understand that at Coinbase, editorial curation often reflects compliance or brand safety requirements, so the algorithm must be constrained by policy—not the other way around. Mention that you'd instrument conflicts and use them as training signals to improve both systems.

1. Clarify goals and constraints

Define what each system optimizes for: curation for trust, compliance, or strategic narratives; algorithms for engagement, relevance, or personalization. Identify non-negotiable constraints like regulatory requirements or brand safety.

2. Establish conflict resolution principles

Agree on a hierarchy: e.g., legal/compliance > user trust > engagement. Document when human override is mandatory and when algorithmic output should take precedence, with clear escalation paths.

3. Design detection and feedback loops

Instrument systems to flag conflicts automatically, log overrides, and measure impact on user metrics. Use these signals to retrain algorithms or refine curation guidelines.

4. Collaborate cross-functionally

Work with legal, compliance, product, and data science to review conflicts and update policies. Ensure engineers understand the 'why' behind overrides to build better tooling.

5. Iterate and communicate

Treat conflict resolution as an ongoing process: A/B test outcomes, share learnings, and adjust the balance as the product and regulatory landscape evolve.

Key Points to Mention

  • Compliance and regulatory requirements as hard constraints (e.g., securities laws, regional restrictions)
  • User trust and long-term retention vs. short-term engagement metrics
  • Transparency and explainability of algorithmic decisions to users and regulators
  • Feedback loops: using human overrides as labels to improve algorithms
  • Cross-functional collaboration with legal, compliance, and product teams
  • Metrics for success: measuring the impact of curation vs. algorithm on key business and user outcomes

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

Q7

What consistency guarantees would you target for editorial content versus real-time price data, and why?

System DesignTechnical Trade-offs
Author's notes

Eventual consistency for editorial, since a category description being 30 seconds stale is fine.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by contrasting the two data types: editorial content is read-heavy, rarely updated, and can tolerate eventual consistency, while real-time price data demands strong consistency and low latency. Then, propose specific consistency models for each, justifying your choices with trade-offs around latency, availability, and correctness.

Pro tip: Mention that for real-time price data, you might use a consensus protocol like Raft or Paxos for strong consistency, but for editorial content, a distributed cache with eventual consistency is sufficient. Also, highlight the importance of idempotency and monotonic reads for price data to avoid stale or out-of-order updates.

1. Characterize the data

Describe the nature of editorial content (e.g., articles, blog posts) and real-time price data (e.g., stock/crypto prices). Highlight differences in update frequency, read patterns, and tolerance for staleness.

2. Define consistency requirements

For editorial content, argue for eventual consistency with low latency and high availability. For price data, argue for strong consistency (linearizability) to ensure all users see the same price at the same time.

3. Propose implementation strategies

Suggest concrete systems: for editorial, use a CDN with cache invalidation and a distributed database like Cassandra with eventual consistency. For price data, use a strongly consistent store like Spanner or a consensus-based system like etcd, with real-time streaming.

4. Discuss trade-offs

Explain the trade-offs: eventual consistency offers lower latency and higher availability but may show stale data; strong consistency ensures correctness but can increase latency and reduce availability during partitions.

5. Consider edge cases and optimizations

Mention handling of network partitions, clock skew, and the need for monotonic reads for price data. For editorial, discuss cache invalidation strategies and versioning.

Key Points to Mention

  • CAP theorem and the trade-off between consistency and availability
  • Eventual consistency for editorial content to ensure high availability and low latency
  • Strong consistency (linearizability) for real-time price data to prevent arbitrage and ensure fairness
  • Use of consensus algorithms (e.g., Raft, Paxos) for price data
  • Caching strategies and CDNs for editorial content
  • Idempotency and monotonic reads to handle out-of-order updates in price data

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