← Coinbase Interview Insights

Coinbase·Software Engineer·Online Assessment (OA)·Intermediate

Intermediate
Jul 2026

Summary

Coinbase OA for a software engineer role, Flappy Bird variant where you write a jump strategy for a dog navigating a map with coins. The interface pairs you with an AI assistant that generates code, and there's a visual autopilot mode that shows your strategy in action. I found out about the autopilot way too late and burned a ton of time staring at failing unit tests that didn't make much sense on their own.

Questions Asked (1)

Q1

Write a strategy function that decides when a character should jump, given a map with a ceiling boundary, a ground boundary, and coins scattered around. Jumping costs a coin, and you lose if you hit the ceiling, hit the ground, or run out of coins.

Algorithms & Data StructuresTechnical Trade-offs
Author's notes

The three loss conditions threw me off at first.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the problem constraints and defining the state space (position, velocity, coins). Then propose a dynamic programming or greedy strategy that balances coin collection with survival, and discuss trade-offs between optimality and computational complexity.

Pro tip: Emphasize safety: always ensure a safe landing spot before jumping, and consider worst-case scenarios. Also, mention that you would write unit tests for edge cases like no coins or narrow passages.

1. Clarify the problem

Ask questions to understand the map representation, character movement, jump mechanics, and win/lose conditions. Confirm whether the map is static or dynamic, and if there are obstacles besides boundaries.

2. Define state and actions

Identify the state variables: character's position (x, y), velocity, remaining coins, and collected coins. Define possible actions: move left/right, jump (costs a coin), and do nothing.

3. Choose an algorithmic approach

Consider dynamic programming (e.g., DP over position and coins) or greedy with lookahead. Discuss trade-offs: DP guarantees optimality but may be computationally heavy; greedy is faster but may fail in complex maps.

4. Handle constraints and edge cases

Ensure the strategy avoids hitting boundaries and running out of coins. Plan for edge cases like no coins, unreachable coins, or forced jumps.

5. Analyze complexity and optimize

Evaluate time and space complexity of the chosen approach. Suggest optimizations like memoization or pruning to improve performance.

Key Points to Mention

  • Dynamic programming with state (position, coins) to maximize collected coins while ensuring survival.
  • Greedy strategy: jump only when necessary to collect a coin or avoid an obstacle, and only if a safe landing is guaranteed.
  • Trade-off between optimality and efficiency: DP may be overkill for simple maps; greedy may fail in complex scenarios.
  • Safety checks: before jumping, verify that the landing spot is within boundaries and not hazardous.
  • Coin management: prioritize collecting coins that are easily accessible to avoid running out of coins.
  • Testing: include unit tests for edge cases such as no coins, narrow passages, and forced jumps.

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