Databricks Interview SDE
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)
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.