52 practice questions for Coinbase Mobile Engineer interviews
Coinbase mobile engineer interviews focus on iOS or Android platform knowledge, memory management, offline-first architecture, and mobile-specific system design.
Question You are designing an NFT generation engine. You are given a set of Traits, where each trait has a name and a list of possible...
Input: List Output: Array
codingMediumVerified Question#2
2. Blockchain Mining
Category: Dynamic programming coding problem
Question You are building a block construction module for a blockchain node. The goal is to select a subset of pending transactions to include in...
Input: Graph (nodes and edges) Output: Computed result
codingMediumVerified Question#3
3. Crypto Trading System Stream
Category: String coding problem
Question Design a crypto trading system that manages a stream of orders. The system should support various operations like placing, pausing,...
Input: Array of strings Output: Computed result
codingHardVerified Question#4
4. Design Iterators
Category: Array coding problem
Question For this problem, you will be designing a series of different iterator classes. This problem is split into multiple related parts that...
Input: Array of integers Output: Computed result
codingMediumVerified Question#5
5. Food Delivery System
Category: Trie-based coding problem
Question For this problem, you will be designing a food delivery system. This problem is split into three related parts, evolving from basic data...
Input: List Output: Computed result
codingHardVerified Question#6
6. Transaction System
Category: Tree coding problemFor this problem, you will be designing a system to handle financial transactions and account balances. This problem is split into three related...Input: List Output: Integer
codingHardVerified Question#7
7. OA[CodeSignal] Cloud File Storage System
Category: Graph coding problem
Question Your task is to implement a simple in-memory cloud storage system that maps objects (files) to their metadata (name, size, etc.). You...
Input: Graph (nodes and edges) Output: Array
codingHardVerified Question#8
8. OA[CodeSignal] Design Banking System
Category: Graph coding problem
Question Design a banking system that supports account management, transactions, and various financial operations.
Input: Graph (nodes and edges) Output: Computed result
codingHardVerified Question#9
9. Capital Gains Tax Calculator
Category: String coding problemYou are given a chronologically sorted list of stock transactions. Each transaction is a list of strings in the format `[<timestamp>, <type>,...Input: Array of strings Output: Computed result
codingMediumVerified Question#10
10. Service Log Aggregator
Category: Trie-based coding problemA distributed system emits log entries from multiple services and worker threads. Each log entry is a colon-separated string in the format...Input: Array Output: Computed result
codingHardVerified Question#11
11. OA [CodeSignal] Knowledge Base System
Category: Graph coding problemDesign and implement a personal knowledge base called KnowledgeBaseSystem that stores articles with CRUD operations. The system operates entirely...Input: Graph (nodes and edges) Output: Computed result
codingMediumVerified Question#12
12. OA [CodeSignal] Workspace Tracker
Category: Interval-based coding problemBuild a system to track desk workers at a shared office space. The system records when each worker enters and leaves and computes how long they have...Input: String Output: Array
codingHardVerified Question#13
13. Transaction Query Engine
Category: String coding problemDesign a system to filter and paginate a list of transaction records. Each record is a list of strings in the format `[timestamp, id, userId,...Input: Array of strings Output: Computed result
codingMediumVerified Question#14
14. Exchange Rate Finder
Category: String coding problemYou are given a set of currency exchange relationships. Each relationship specifies a direct exchange rate between two currencies. Rates are...Input: List Output: Computed result
codingHardVerified Question#15
15. Order Matching Engine
Category: String coding problemYou are managing a cryptocurrency order book. The book holds buy and sell orders placed by traders. - A buy order indicates the maximum price a...Input: String Output: Computed result
codingHardVerified Question#16
16. Account Transfer System
Category: String coding problemYou are given a list of fund transfer instructions and a set of accounts with initial balances. Each transfer moves a fixed percentage of the...Input: List Output: Computed result
codingHardVerified Question#17
17. Restaurant Delivery Network
Category: String coding problemYou are building a food discovery platform. Given a user's location, a list of restaurants with their coordinates, and a menu of items with prices,...Input: List Output: Computed result
codingHarddynamic programming#1
1. [OA] Dynamic Programming — Calculate the optimal fee structure for Coinbase transactions.
To improve the efficiency in how fees are applied, Coinbase needs a method to determine the best strategy for applying fees based on transaction patterns using dynamic programming. Problem statement: You are given a list of integers transactionFees, where each integer represents the fee for a specific transaction. Your goal is to minimize the total fee based on reusing previous fee additions. Return the minimum total fee for any series of transactions.
Method: minTransactionFee(transactionFees: List[int]) -> int — Returns the minimum total fee possible.
Example 1: Input: transactionFees = [10, 15, 20] Output: 15 Explanation: The optimal fee by considering all transaction fees at once leads to the lowest possible fee 15.Example 2: Input: transactionFees = [100, 1, 2, 50, 200] Output: 3 Explanation: The optimal choices are to skip the high fees and take the next minimal fees that lead to the least total.Constraints:
1 <= transactionFees.length <= 10^4
1 <= transactionFees[i] <= 10^4
codingHardsliding window#2
2. [OA] Sliding Window — Implement a real-time balance tracker for Coinbase users based on their transactions.
In order to enhance user experience, Coinbase needs a feature to provide real-time updates on user balances by tracking transactions in a sliding window. Problem statement: Given an array of integers transactions representing the amounts of transactions made by a user over a given period, find the maximum balance within the last k transactions. This will help users quickly understand their recent financial changes.
Method: maxBalance(transactions: List[int], k: int) -> int — Returns the maximum balance observed within the latest k transactions.
Example 1: Input: transactions = [100, -30, 20, 50, -10], k = 3 Output: 70 Explanation: The last three transactions are [20, 50, -10], leading to a maximum balance of 70.Example 2: Input: transactions = [200, 400, 600, -500], k = 2 Output: 600 Explanation: The last two transactions are [600, -500], leading to a maximum balance of 600.Constraints: