Databricks Interview SDE

databricks logo
databricks
SDE I
March 11, 202515 reads

Summary

I interviewed for a Software Development Engineer (SDE) position at Databricks. The process involved a technical phone screen and two subsequent coding rounds, covering algorithms, data structures, and a challenging machine coding system design problem.

Full Experience

My interview journey for the SDE role at Databricks started with a phone screen. The question I received was precisely the one detailed in a specific LeetCode Discuss post concerning a BFS problem. Following this, I proceeded to two coding rounds.

The first round focused on algorithms, where I was tasked with a problem identical to one I'd found on Stack Overflow: finding a path between two nodes in a K-th order Fibonacci tree. The second, a machine coding round, challenged me to design a Map structure capable of put(string key, string value) and get(string key) operations. Crucially, it also required instrumentation methods like measure_put_load() and measure_get_load() to report the average number of calls within a 5-minute rolling window. A significant follow-up involved designing this system to handle a high volume of concurrent calls arriving in rapid succession, such as multiple operations within milliseconds. This design problem bore conceptual similarities to the LeetCode 'Time Based Key-Value Store' problem, but with added real-time load measurement and concurrency considerations.

Interview Questions (3)

Q1
BFS Problem (Databricks Phone Screen)
Data Structures & Algorithms

This question was exactly the same as described in the linked LeetCode Discuss post, which involved a Breadth-First Search (BFS) problem.

Q2
Finding a path between two nodes in a K-th order Fibonacci tree
Data Structures & Algorithms

The problem involved finding a path between two given nodes within a K-th order Fibonacci tree. I was asked this problem exactly as described in the provided Stack Overflow link.

Q3
Design a Time-Windowed Key-Value Store with Load Instrumentation
System Design

I was asked to design a Map structure with put(string key, string value) and get(string key) methods. Additionally, it needed instrumentation methods like measure_put_load() and measure_get_load() to return the average calls made within a 5-minute window. A follow-up asked about handling multiple calls coming in fractions of a second (e.g., 10 calls at 0.01, 0.02, etc.). The problem was similar to the LeetCode 'Time Based Key-Value Store' problem but with these specific instrumentation and concurrency requirements.

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!