The OA was a design question — you needed to implement a class that supports some basic operations, similar to a banking system.
Next is the onsite, split into two stages total. This post mainly covers the first stage.
Behavioral:
This round mainly revolved around one of my bigger projects, and we went pretty deep into it. The interviewer was more like digging into specific points to discuss further, rather than the traditional "interrogation-style" questioning — overall it was a good experience.
They'd ask things like: what's the most surprising finding you had in this project, was there anything that didn't match your expectations. It also went a bit off on tangents in the middle, like talking about my career history and future plans.
Coding:
Two rounds total.
The first round was a hangman variant that's shown up on the forum before. Roughly: you're given a set of possible words and a secret word, but the tricky part is that the opponent can "swap words" at any time as long as the swap still matches the current board state. You need to figure out the minimum number of guesses required to guarantee you can find the answer.
The second round is also a fairly common one on the forum, a file system crawler. The follow-up was a bit different from what I expected — from what people post on the forum you might think it's multithreading, but what I got was more of a distributed system design, involving the database, API, and an async service.
The focus was really on the design of the database and the async service. A key point is that the async service can call itself recursively, meaning the API can trigger an async job, and while processing, an async job can also split the task further and trigger new async jobs. It took me a bit of time to wrap my head around that at the time.
Discussion
Loading comments…