51 practice questions for Coinbase QA Engineer interviews
Coinbase QA engineer interviews test automation frameworks, test strategy, CI integration, performance testing, and debugging complex multi-service systems.
Category: String coding problem# 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
codingHardgraph#1
1. [OA] Graph Traversal — Ensure API response validation service for Coinbase
In the context of the rapidly changing environments of cryptocurrencies, validating API responses is essential. This requires implementing a utility that verifies response hierarchies and correctness in tests. Problem statement: You need to create a function that performs a depth-first traversal on a response structure that is represented as a graph to validate if a given response satisfies a specific hierarchy. This function should return all valid nodes that meet the criteria within the API response hierarchy. - Method Signature:def validate_api_response(node: Dict[str, Any], criteria: Callable[[Dict[str, Any]], bool]) -> List[Dict[str, Any]] Example 1: Input: {'node': {'valid': true, 'level': 1}, 'children': [{'valid': true, 'level': 2}]}, criteria = (node) => node['valid'] Output: [{'valid': true, 'level': 1}, {'valid': true, 'level': 2}] Explanation: Both nodes are valid according to the criteria. Example 2: Input: {'node': {'valid': false}, 'children': [{'valid': false}, {'valid': true}]}, criteria = (node) => node['valid'] Output: [{'valid': true}] Explanation: Only the last node meets the criteria.Constraints: - 1 <= len(node) <= 1000 - Each node has structure {'valid': bool, 'level': int}
codingHardsliding window#2
2. [OA] Sliding Window — Optimize the transaction testing framework for Coinbase
Coinbase handles thousands of transactions per second, so testing the transaction handling process efficiently is crucial. You need to develop a method to validate a stream of transactions for valid timestamps within a certain window. Problem statement: Implement a function that verifies whether there are any duplicate timestamps in a stream of transactions that occur within a specified windowSize (in seconds). Your method should return true if a duplicate exists within that window, and false otherwise. - Method Signature:def has_duplicate_transactions(transactions: List[Tuple[int, int]], window_size: int) -> bool Example 1: Input: [(1, 100), (2, 101), (3, 103), (4, 104), (5, 106)], window_size = 5 Output: False Explanation: No duplicates within 5 seconds. Example 2: Input: [(1, 100), (2, 101), (3, 102), (4, 103), (5, 106), (6, 102)], window_size = 5 Output: True Explanation: Duplicate timestamp 102 found within 5 seconds.Constraints: - 1 <= len(transactions) <= 10000 - 0 <= transactions[i][0] <= 1000000 - 1 <= window_size <= 1000
system designMediumapi design#3
3. [OA] OOP Class Design — Design a Flaky Test Detector for Coinbase
Coinbase's testing framework needs to identify flaky tests that may produce inconsistent results. Building such a detection mechanism is integral for ensuring high test reliability. Problem statement: Design a class called FlakyTestDetector that will track test runs. It must be able to record test run results, particularly monitoring those tests that have varied results across different runs. The class should also provide a method to check if a test is considered flaky after a certain threshold of inconsistency. - Class Specification: - Method Signature:def record_run(self, test_case: str, result: bool) -> None - Method Signature:def is_flaky(self, test_case: str, threshold: int) -> bool - Method Signature:def get_flaky_tests(self) -> List[str] Example 1: Input: detector.record_run('TestCase1', True) Output: None Input: detector.record_run('TestCase1', False) Output: None Input: detector.is_flaky('TestCase1', 1) Output: True Example 2: Input: detector.record_run('TestCase2', True) Output: None Input: detector.get_flaky_tests() Output: ['TestCase1']Constraints: - 1 <= test_case.length <= 100 - 1 <= len(runs) <= 1000
system designMediumapi design#4
4. [OA] OOP Class Design — Design a Test Result Aggregator for Coinbase
As Coinbase implements various test scenarios for its functionalities, aggregating test results is essential for efficient reporting and analysis. Problem statement: Design a TestResultAggregator class that handles the storage and computation of results from multiple test cases run on their framework. This class must have the ability to add test results, get all results, and compute the percentage of passed tests. - Class Specification: - Method Signature:def add_result(self, test_case: str, passed: bool) -> None - Method Signature:def get_results(self) -> List[Tuple[str, bool]] - Method Signature:def get_pass_percentage(self) -> float Example 1: Input: aggregator.add_result('TestCase1', True) Output: None Input: aggregator.get_results() Output: [('TestCase1', True)] Input: aggregator.get_pass_percentage() Output: 100.0 Example 2: Input: aggregator.add_result('TestCase2', False) Output: None Input: aggregator.get_pass_percentage() Output: 50.0Constraints: - 1 <= test_case.length <= 100 - 1 <= len(results) <= 1000