Coinbase Interview Questions (11+ Questions)

Last Updated: July 5, 2026 β€’ 11 Questions β€’ Real Company Interviews

Prepare for your Coinbase interview with our comprehensive collection of 11+ real interview questions and detailed answers. These questions have been curated from actual Coinbase technical interviews across various roles including DevOps Engineer, Data Engineer, QA Engineer, and more.

11
Interview Questions
1
Categories
3
Difficulty Levels

Table of Contents

Our Coinbase interview questions cover a wide range of technical topics and difficulty levels, from entry-level positions to senior roles. Each question includes detailed explanations and answers to help you understand the concepts and prepare effectively for your interview.

πŸ’‘ Pro Tips for Coinbase Interviews

  • Practice each question and understand the underlying concepts
  • Review Coinbase's specific technologies and methodologies
  • Prepare follow-up questions and edge cases
  • Practice explaining your solutions clearly and concisely

Interview Questions & Answers

1. Managing Log File Rotation

Company: Coinbase Difficulty: medium πŸ”’ Premium Categories: Devops

Implement automated log rotation in Linux using logrotate to prevent disk space exhaustion. Learn how to identify oversized log files exceeding size limits, create logrotate configuration files with daily rotation policies, compress archived logs, retain multiple versions for troubleshooting, and implement postrotate scripts to reload application services. This guide covers assessing current log file sizes, configuring retention policies, testing logrotate functionality, and preventing disk-full incidents. Essential for maintaining system stability, preventing production outages from disk space issues, and implementing sustainable log management strategies.

2. Stuck InitContainer Pod

Company: Coinbase Difficulty: medium πŸ”’ Premium Categories: Devops

Troubleshoot pods stuck in Init state by fixing initContainer configuration, resolving executable not found errors, and ensuring proper init sequence completion. Fix startup dependencies, verify command paths, and transition pods from Init to Running state. Essential for pod initialization workflows, dependency setup, data preparation, and multi-stage pod startup sequences.

3. Path-Based Workflow Execution

Company: Coinbase Difficulty: medium Categories: Devops

We have a repo with infrastructure code in a slash infra directory and documentation in slash docs. We need a workflow that only runs when infrastructure files change. By default, a push trigger fires on every push, regardless of which files change. The path filter narrows those down. Patterns use glob syntax. infra** matches any file which is inside of the infra directory, including the files in subdirectories. The workflow only runs when at least one changed file matches a pattern. Without it, every push runs every workflow. With path filtering, the workflow only runs when relevant files are being changed. This helps keep the pipelines fast and focused and helps avoid wasting computer resources on checks that don't apply to the changes which are being made. Actions/checkout pulls the repo code so that we can access the validation script.

4. Graph Valid Tree

Company: Coinbase Difficulty: medium Categories: Devops, Data engineering

def valid_tree(n: int, edges: list[list[int]]) -> bool:
if len(edges) != n - 1:
return False

parent = [i for i in range(n)]

def find(node):
    p = parent[node]
    while p != parent[p]:
        parent[p] = parent[parent[p]]
        p = parent[p]
    return p
    
def union(n1, n2):
    p1, p2 = find(n1), find(n2)
    
    if p1 == p2:
        return False
        
    parent[p1] = p2
    return True
    
for u, v in edges:
    if not union(u, v):
        return False
        
return True

5. Create IAM Role for EC2 with Full IAM Access

Company: Coinbase Difficulty: easy Categories: Devops, Data engineering, Quality assurance

Our team needs an EC2 instance to manage IAM resources programmatically and to follow security best practices, we need to use IAM role instead of embedding credentials. Our task is to create IAM role IAM full access EC2 and allow EC2 service to assume this role and this role has to have IAM full access policy attached. In AWS, we could access services by using access key and secret key, it's like having a username and password. Imagine if our AWS EC2 instance has been compromised, our access key and secret key could be reused for other purposes. The best practice in AWS is to use something called AWS role. When EC2 instance assumes a role, it sends an API request to AWS Secure Token service and it checks if this instance has access to this role and if it does, secure token service gives a temporary credentials to our EC2 instance. This is short-lived credentials and they're never stored directly in our EC2 instance.

6. Order Processing Efficiency Query

Company: Coinbase Difficulty: easy πŸ”’ Premium Categories: Data analysis, Data engineering

Interview Question: Calculate Average Order Processing Time for Each Customer

Objective

Your task is to write a SQL query to determine the average order processing time for each customer whose orders have been completed. The average processing time should be calculated in hours. The resul...


πŸ”’ Premium Content

Detailed explanation and solution available for premium members.

Upgrade to Premium β†’

7. Flatten Nested Struct Columns in Parquet and Export to CSV

Company: Coinbase Difficulty: medium Categories: Data analysis, Data engineering

We'll need to flatten nested struct columns in Parquet and export them to CSV using Pandas. Pandas is a library that was specifically designed for data analysis and manipulation. We are given one Parquet file that contains customer data, but some columns are nested, which means that instead of a simple value like a string or number, they contain a whole object with multiple fields. Parquet stores data column by column instead of doing that row by row. Our job here is to extract the fields from the nested columns and turn them into independent ones. In order to start working with Parquet file, we need to read it into data frame that is called DF. JSONNormalize function in Pandas will take each dictionary from address column and expand it into separate columns. Next step is renaming the columns by adding address_ as a prefix. Using drop function, we will remove the initial nested columns. Now we will combine the results using concat function. We will save the result to a CSV file. For this reason, we will use to_csv function.

8. Rank Top Products by Revenue per Category

Company: Coinbase Difficulty: hard Categories: Data analysis, Data engineering

We need to rank top products by revenue for each category. This is a Snowflake question, which is a cloud-based data warehouse that uses SQL and all its main concepts. We are given two tables: products and sales. First, we need to calculate how much revenue each product generated. Then we rank them within their category from highest to lowest, and in the end, we keep only the top three per category. A CTE, or in other words, common table expression, is a temporary result set that we define at the top of our query. In Snowflake, we use database tool, which organizes and manages tables. We put the name of the table inside of ref function, and this whole thing is wrapped in double curly braces. We need to combine them using JOIN. We are more interested in inner join because it returns only the rows where there is a match in both tables. Dense rank is a function that assigns rank numbers to rows. The reason why we use dense rank instead of regular rank is that dense rank never creates any gaps. Partition by category creates sort of invisible walls between each category. We put a condition inside the WHERE clause that rank has to be equal or lower than three.

9. Tracking Customer Purchase History

Company: Coinbase Difficulty: hard Categories: Data analysis, Data engineering

Spark is a framework that processes large amounts of data across multiple machines at the same time. Instead of tables, it uses data frames. We have only one file that is called transactions.csv. Its data frame contains four columns, product ID, reference to the customer by ID, quantity, and date of transaction. For each transaction, we need to find what product that particular customer bought most recently before the current one. Then we create a new column that combines the date and that previous product in one string. A window function performs a calculation across a set of related rows and keeps every single row in the result. This is the key difference from group by, which is an aggregate function that collapses multiple rows into one outcome per group. Partition by customer ID will create invisible walls between customers. Lag is a type of window function that will look backwards and reach back to the previous row to grab its product ID value. Concat function joins multiple strings together.

10. Salary Increase Projection

Company: Coinbase Difficulty: medium πŸ”’ Premium Categories: Data engineering

SQL Query to Calculate Projected Next Salary for Each Employee

Objective

The goal is to write an SQL query that calculates the projected next salary for each employee based on their department's average yearly salary increase percentage. The output should display the employee name, departm...


πŸ”’ Premium Content

Detailed explanation and solution available for premium members.

Upgrade to Premium β†’

11. Domain Extraction from Emails

Company: Coinbase Difficulty: easy πŸ”’ Premium Categories: Data engineering

Objective

Write an SQL query to identify the domain of email addresses from a customers table, count the number of occurrences of each domain, and then return the results sorted by the count in descending order. In case of a tie in the count, sort the domains alphabetically.

Additional In...


πŸ”’ Premium Content

Detailed explanation and solution available for premium members.

Upgrade to Premium β†’


Ready to Practice More?

Explore interview questions from other companies or try our hands-on labs to build practical experience.