I knew there was a lot of hype around Databricks these days, and I guess that makes them extra picky with their interview process. I have almost 9 years of experience now and this was one of the toughest interview loops I've had. The algo questions were bad enough, but they really dived pretty low on the System design.
There's so few posts about the Databricks loops recently, I hope this helps someone prepping:
I got asked a question about navigating through a fibonacci tree to find the shortest path. Theres another discussion post that has the exact question details so I won't go over it here. This was much harder than what I've seen in other phone screens so this kind of set the pace for my prep work for the rest of the loop.
Verdict: passed
Got asked to build a encoder and decoder using RLE and BP, I haven't done anything related to compression since college, but luckily I had seen this problem so it went pretty smooth. There's a problem on here that let's you practice RLE and I highly recommend practing it. I did that one before doing the problem on offerretriever. I finished this round with plenty of time to spare and all the test cases passed.
When chatting with the interviewer, I got the sense that the WLB at databricks is not great, but with an ipo looming, it might be worth joining.
Verdict: strong hire
I got asked to build a iterator for a Set datastructure and to be able to get the snapshot of the current Set at any given point in time. The difference here was that it was important to make sure that the snapshots were ordered, so you couldn't use the built in Set structure. The operations were basically what you would expect from a Set other than that. I finished this one right up against the clock since the interviewer asked me to make my snapshot fetching faster. I had a couple mins left for questions at the end, so I think this was a pass.
Verdict: hire
The system design question itself wasn't super unique but the interviewer really dug into low level implementation details about concurrency at scale. The question was to build a credit card processing system for an online game platform. We had to consider refunds, credits, and in game items. There's a few guides for payment system design questions online and this question seemed like a twist on them. I saw it on hello interview here.
I thought my high level design was alright, my interviewer really diving into the weeds on implementation details around handling concurrent transactions and how failure recovery would work. Not sure if it's because I didn't explain it well, but I feel like we spent half the interview just talking about this and it felt a bit like spinning in circles. The
Self verdict: weak no hire
I was asked to implement a log writing system. It started out simple, writing to a file on a disc synchronously. It got more complicated to handle scaling, I had to make it multi-threaded while making sure the writes were still ordered and well structured.
Self verdict: hire
I'm still waiting to hear back, but as long as the System Design didn't fully sink me, I think I should get an offer. The problems are pretty tough, so if you want to get in it's worth prepping well and holding off on Databricks until later in your interview journey, you definitely want to be at your most polished.