Databricks| SDE-2 | India
Anonymous User
14454
Nov 14, 2023
Nov 14, 2023

Adding interview experience for databricks as there are not many data points available. Recruiter reached out for E4/E5 role. Level was to be assigned based on interview performance.

Phone Round

Asked a variation of the top K most frequent elements in a data stream. Can't find link to the exact leetcode problem.
Discussed multiple approaches and their trade-offs and coded one solution out.

Onsite Round 1

https://leetcode.com/problems/design-hit-counter/ Gave the deque solution for this problem. The solution worked. Question was modified with the requirement to find the system's time as the timestamp of insertion. Was not able to identify the function for the same. Interviewer was not willing to accept an arbitrary timestamp function to move things along. Modified the inputs and function signature for the problem to unblock myself. Solution worked in optimal time complexity.
Interviewer had a solution in mind that used circular arrays and was insistent on you arriving at the same solution. Was not able to come up with the exact circular array solution within the interview time frame due to lack of time. Might have been docked some points for that.

Personal Assessment: While I was able to code the optimal solution, interviewer may have docked some points for minor points mentioned in the question around langauge specific questions and my choice of deque over arrays.

PS: If anyone knows how to compute the system time in milliseconds and store it to long/int in C++, please add a comment. Would like to know the answer.

Onsite Round 2

Problem statement was very long. However, interviewer was patient and helpful. They were willing to work with the candidate to arrive at a working solution.

To summarise, you had to implement a circuite breaker solution for a leader-follower database system. There were a set of circuit breaker rules given in the question.
Expectation was to have compiled/running code in this round. Started off in C++ but switched to Java identifying the fairly complicated OOP patterns being formed. This was more of an LLD problem than a DSA problem. Was able to code out a solution by following OOP patterns. Their IDE did not support lombok, so had to code those pieces out. Code ran and gave the correct answer in the first attempt. Interviewer was satisfied. Ran over time in this round so might have lost points for the same.

Personal Assessment: Code quality could have been better, but due to lack of time could not work on it. Other than that this round went very well. Interviewer worked with me to point out minor areas of improvement during the coding phase.

Onsite Round 3

This was supposed to be a HLD round but interviewer had an expectation that we would write code for each of the design problems. We did not have to compile and run the solution. Design tradeoffs would be discussed later.
First Problem: Had to implement a webcrawler, given a series of seed words. Basically a minor variation of this: https://leetcode.com/problems/web-crawler/
Gave bfs solution
First follow Up: Restrict the traversal upto a depth of K.
Modified bfs solution
Second Follow Up: How can you optimise the code execution? Talked about multithreading approach at a high level. Was not able to write the code for the same. Interviewer did not clearly inform if they wanted multithreaded solution here. Did not code it out either as I was not very confident about the multithreading solution for the problem. Interviewer was satisfied with the high level ideas but was probably expecting code for strong hire.
HLD questions: Identify bottlenecks in your code. Was able to point out write to disk and network calls as bottlenecks. Was asked what can be done to speed these operations up. Gave standard responses for optimising network performance, reducing size of data being written and optimizing write to disk performance. Was not able to identify anything extraordinary here. Was asked questions around size of thread pool and size of the dataset to be parsed. Was able to answer those. Interviewer seemed satisfied with HLD question answers but probably wanted code for multithreaded solution.

Personal Assessment: It would have helped my case had I given concrete code solution for the multithreading part of the solution. But was not well versed with all the constructs as I don't use this very regularly at work. Can someone share some good resources to practice multithreading implementation?

Behavioral Round
Questions on projects done and other standard stuff. Got into details of the technical projects. Motivation to join, situational questions etc. Gave canned responses here.

Overall Verdict: 3 Positive 1 negative. Rejected

Comments (6)