coinbase logo

Coinbase Interviews

3 experiences0 reads11 questions67% success rate
Coinbase IC4 | India | Offer
coinbase logo
Coinbase
ic4indiaOffer
February 8, 20250 reads

Summary

I successfully navigated through a multi-round interview process for an IC4 role at Coinbase in India, which included online assessments, behavioral, tech execution, and domain-specific interviews, ultimately leading to an offer.

Full Experience

I applied for the IC4 role at Coinbase through LinkedIn in January 2025. The interview process was comprehensive and challenging, consisting of several rounds which I ultimately cleared to receive an offer.

Round 1 - Logical Reasoning OA

This initial online assessment focused on basic mathematical problems and image pattern recognition questions. It was a standard test of logical abilities.

Round 2 - Code Signal OA

In this round, I was tasked with implementing a Key-Value Store that could handle two keys: a primary key and a sub-key. The problem had four levels of complexity. It shared similarities with the LeetCode "Time-Based Key-Value Store" but introduced the additional layer of a sub-key. The required operations included retrieving all values for a main key, getting the latest value for a specific key-sub_key pair, fetching a value at a given timestamp for a key-sub_key, and deletion operations for both main keys and sub-keys.

Round 3 - Foundational Interview

This was a standard behavioral interview round where I discussed my past experiences, how I handled challenges, and my approach to teamwork and problem-solving.

Round 4 - Tech Execution Interview

This round was heavily focused on practical coding problems, particularly around iterators, and progressed through multiple levels:

  • Level 1: I had to write an alternate iterator for a list of lists. This was conceptual similar to the Zigzag Iterator on LeetCode, but instead of just two lists, my solution needed to accommodate 'n' lists within the main list. For example, given lists = [[0, 1, 2], [], [3, 4], [5]], the expected output was 0, 3, 5, 1, 4, 2.
  • Level 2: My next task was to implement a range iterator that could correctly handle negative step values. An example provided was start = 0, end = 10, step = 2, which should produce [0, 2, 4, 6, 8, 10].
  • Level 3: I then wrote a basic list iterator for a simple list, such as list = [0, 1, 2, 3, 4, 5], to iterate through its elements sequentially.
  • Level 4: The final challenge in this round involved modifying the iterator class from Level 1. Instead of taking a list of lists, it needed to accept a list of diverse iterator objects (which could be instances of my previously built range iterator and list iterator) and print the numbers in an alternating fashion from all contained iterators.

Round 5 - Domain Interview

In this round, I was presented with a list of transactions and asked to design and implement a generic search API. This API needed to filter transactions based on a combination of specific fields and values, supporting operations like "=", ">", "<", etc. It was an open-ended problem, so I had to define the input structure for the filters myself.

The follow-up discussion revolved around pagination:

  • I explained what pagination is and why it's a necessary feature in many applications.
  • We discussed various techniques used for implementing pagination.
  • I detailed how to choose an appropriate cursor ID column when implementing cursor-based pagination.
  • Finally, I had to enhance my search API code to incorporate support for cursor-based pagination.

Overall, the interviewers were very helpful and supportive, providing guidance whenever I encountered difficulties. The recruiter was also excellent, keeping me well-informed with frequent updates and constructive feedback throughout the entire process.

Interview Questions (6)

Q1
Key-Value Store with Two Keys and Timestamps
Data Structures & AlgorithmsMedium

Implement a key-value store that supports two keys (a main key and a sub-key) and timestamps. It should allow storing multiple values for a key-sub_key pair over time. The system needs to support operations such as:

  • Return all values associated with a main key.
  • Return the latest value for a specific main key and sub_key.
  • Return the value for a specific main key and sub_key at a given timestamp.
  • Delete a main key.
  • Delete a sub-key (implying deleting all entries for that sub-key under any main key).
Q2
N-ary ZigZag Iterator
Data Structures & AlgorithmsMedium

Write an alternate iterator for a list of lists. Similar to the ZigZag Iterator (LeetCode), but instead of just two lists, it should handle 'n' lists. The iterator should yield elements from the lists in an alternating fashion, skipping empty lists. Example: lists = [[0, 1, 2], [], [3, 4], [5]] Output should be: 0, 3, 5, 1, 4, 2

Q3
Custom Range Iterator with Negative Step
Data Structures & AlgorithmsEasy

Implement a range iterator that supports both positive and negative steps. Example: start = 0 end = 10 step = 2 Output should be [0, 2, 4, 6, 8, 10]

Q4
Basic List Iterator
Data Structures & AlgorithmsEasy

Implement a basic iterator for a given list. Example: list = [0, 1, 2, 3, 4, 5] Output should be: 0, 1, 2, 3, 4, 5

Q5
Polymorphic Iterator for Mixed Types
Data Structures & AlgorithmsMedium

Modify the N-ary ZigZag Iterator class (from Level 1) to accept a list of iterator objects instead of raw lists. The input list can contain a mix of different iterator types (e.g., custom Range Iterator, List Iterator). The goal is to print numbers in an alternating fashion across these diverse iterators.

Q6
Generic Transaction Search API with Filtering and Pagination
System DesignHard

Design and implement a generic search API that can filter a list of transactions based on a combination of specific fields and values. The filters should support operations like '=', '>', '<', etc. The input structure for filters is open-ended, requiring the candidate to define it. Example Transactions:

[
  {id: 1, time: 1, userId: 1, amount: 10},
  {id: 2, time: 2, userId: 3, amount: 10},
  {id: 3, time: 3, userId: 4, amount: 11},
  {id: 4, time: 4, userId: 2, amount: 12}
]

Follow-up questions include:

  • Explain pagination and its necessity.
  • Discuss various techniques used for implementing pagination.
  • How to choose a cursor ID column when using cursor-based pagination?
  • Enhance the implemented code to support cursor-based pagination.
Coinbase
coinbase logo
Coinbase
Ongoing
January 29, 20250 reads

Summary

I interviewed at Coinbase for a role, where I was tasked with designing a food delivery application and later solving a follow-up problem on order analytics within a given time range.

Full Experience

I had my interview at Coinbase, specifically Round 1 which was focused on Domain. During this round, I was challenged to design a food delivery application. The primary requirements for this design included implementing methods to efficiently find the minimum price for a specific food item available on the menu. Furthermore, the application needed to determine and display the nearest restaurant serving that particular item, based on the user's current location. A follow-up question involved processing an order list, which included timestamps, to calculate various metrics within a specified time range. I needed to find the total number of orders, the average order value, and the overall total order value within that duration. For my solution, I focused on writing production-grade ready code, ensuring that all potential edge cases were thoroughly addressed. I used Java and developed over 200 lines of code to tackle the entire problem.

Interview Questions (2)

Q1
Design a Food Delivery App with Price & Location Search
System Design

I was asked to design a food application. I needed to implement methods to find the minimum price for a particular food item from the menu. Additionally, based on the user's location, the system had to find the nearest restaurant that serves that item.

Q2
Order Analytics in a Time Range
Data Structures & Algorithms

Given a specific time range and an order list containing timestamps, I needed to find the total number of orders within that given range. Additionally, I had to calculate the average order value and the total order value for all orders placed within the specified time period.

Coinbase | SWE Intern | SF | Offer | Summer 2020
coinbase logo
Coinbase
swe internsfOffer
February 15, 20200 reads

Summary

I successfully navigated the interview process for a SWE Intern position at Coinbase in San Francisco for Summer 2020 and ultimately received an offer. The interview included initial online assessments, an HR phone call, and two technical rounds, one focusing on front-end development and another on data structures and system design.

Full Experience

I applied to Coinbase on December 23rd, and shortly after, I received a link to complete a Triplebyte test. I opted for both front-end and back-end domains, answering 35 questions for each test on December 29th.

My second round was a 30-minute HR phone call where they asked general questions about my resume, projects, and past experience. We also discussed my interest in Coinbase, other offers I might have, and how I learned about the company.

The third round was a 1-hour screen share technical interview. Since I had front-end experience, the interview focused on that domain. I was asked to code a part of the Coinbase Pro UI using HTML, CSS, and React on Codepair by Codepen. Unfortunately, I faced some technical difficulties and couldn't see my code output, which was quite frustrating for a front-end task. I promptly sent an email explaining the situation and was rescheduled for another coding round.

The rescheduled third round, 'part 2', was also a 1-hour screen share technical interview. This time, the focus shifted to LeetCode-style questions. I was given one debugging question and one coding question: to create a hashmap using an array. Additionally, there was a system design question about an e-commerce website.

Finally, I received an email asking for a convenient time to call, and they extended an offer over the phone. I was thrilled to get in! They detailed all the offer specifics during the call. My overall interview experience was very positive; the recruiters were always quick to respond, and during the screen share round, my interviewer was incredibly helpful, guiding me to analyze my code's efficiency and putting me at ease despite my nervousness.

Interview Questions (3)

Q1
Coinbase Pro UI Development
Other

Code a part of Coinbase Pro UI using HTML, CSS, and React.

Q2
Implement Hashmap using Array
Data Structures & Algorithms

Create a hashmap using an array.

Q3
E-commerce Website Design
System Design

Design an e-commerce website.

Preparation Tips

After clearing the HR round, I realized I needed to intensely study React, as I wasn't proficient enough to feel comfortable using it in an interview setting. I was relieved when the second technical round allowed me to use Python for coding. I also reviewed Glassdoor for insights, finding that many questions were design-based. With very limited time, I went through all the design questions and solutions available on LeetCode.

Have a Coinbase Interview Experience to Share?

Help other candidates by sharing your interview experience. Your insights could make the difference for someone preparing for their dream job at Coinbase.