← Coinbase Interview Insights

Coinbase·Software Engineer·Technical Phone Screen·Intermediate

Intermediate
May 2026

Summary

Coinbase SWE interview with a coding round that had a pretty rough second question. The problem statement was vague upfront and I ended up getting something running but with bugs still in it.

Questions Asked (1)

Q1

Given a set of items with fees, sizes, and dependencies on other items, select an optimal subset to maximize some objective while respecting those dependencies.

Algorithms & Data StructuresAdaptability & Ambiguity
Author's notes

No input/output examples at the start, which threw me off more than I expected.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the problem: what is the objective (e.g., maximize value, minimize cost), what are the exact dependency constraints (e.g., item A requires item B), and whether dependencies can be cyclic. Then model it as a graph problem (e.g., directed graph of dependencies) and identify the appropriate algorithmic technique (e.g., topological sort + dynamic programming, or maximum weight closure). Finally, discuss trade-offs between optimality and complexity, and consider edge cases like cycles or conflicting dependencies.

Pro tip: Demonstrate adaptability by acknowledging that real-world dependencies may be incomplete or change, and propose a solution that can handle dynamic updates or partial information. Also, relate it to Coinbase's domain (e.g., transaction dependencies, fee optimization) to show business awareness.

1. Clarify Requirements and Constraints

Ask questions to understand the objective function, dependency semantics (e.g., AND/OR, mandatory/optional), and whether dependencies can form cycles. Confirm if the problem is static or dynamic.

2. Model as a Graph Problem

Represent items as nodes and dependencies as directed edges. Identify if the problem reduces to a known graph problem like maximum weight closure, knapsack with dependencies, or topological ordering.

3. Choose an Algorithmic Approach

Select an algorithm based on problem structure: e.g., dynamic programming on DAGs, min-cut for maximum closure, or greedy with topological sort. Discuss time/space complexity and optimality.

4. Handle Edge Cases and Scalability

Address cycles (detect and handle via SCC condensation), conflicting dependencies, and large input sizes. Consider approximations if exact solution is NP-hard.

5. Validate and Communicate

Walk through a small example to verify correctness, and clearly explain your reasoning and trade-offs. Be open to alternative interpretations.

Key Points to Mention

  • Graph representation of dependencies (directed edges, cycles detection)
  • Maximum weight closure problem and reduction to min-cut
  • Dynamic programming on DAGs (e.g., tree DP for dependency trees)
  • NP-hardness and approximation algorithms (e.g., knapsack with dependencies)
  • Topological sorting for ordering and feasibility
  • Real-world considerations: dynamic dependencies, partial information, and business context

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