Hi all,
Just wanted to give back to the community with my experience!
I applied as normal through their careers portal (no refferal/recruiter didn't reach out) and don't come from a well-known/particularly good university.
Round 1 - Phone Interview
Received a phone interview invite a week after submitting the initial application. Started with an intro from both sides and then questions regarding past projects/motivation to join the company. He then proceeded with two questions - one LC easy and hard. Didn't have to run either of them and the interviewer mentioned that complexity for the second one was quite difficult and didn't expect me to know it. They asked me to explain my main idea before jumping into the coding. I managed to answer both questions and there weren't any follow ups. The final 15 minutes were for asking questions to the interviewer (as was the case for all 4 rounds). All rounds lasted around 60-90 minutes.
Round 2 - Technical Onsite
Received an email a day later saying the feedback was positive and to schedule the next round. Was pretty much the exact same as the previous except there were two interviewers and it was on a video call. First question was LC medium and second was non-LC (probably classed as easy). For the first one I managed to come up with a solution, wasn't really asked much about complexity but was asked questions about certain design choices and kind of hinting at aspects that could be further optimised. Again they asked me to discuss the thought process before coding to make sure we were on the same page. I was a bit slow with the follow up for the second non-LC question but was able to take hints given.
Round 3 - System Design Onsite
Received an email a day later saying the feedback was positive and to schedule the next round. Was told there would be no coding and it would be focused on system architecture design. I had 0 idea what to expect as the discussion section has very few examples of what comes up. There was only one interviewer and it followed the same starting stucture as the previous 2 rounds. The actual question involved designing a feature that is currently in the BBG terminal, it was quite a simple task/requirement and he mentioned that there are a TON of ways to design a system to do this so no real correct answer as each solution has their own trade-offs. He asked me to mention any services/DBs required etc. and once he was fine with those I drew the diagram. After this there was quite a lot of follow up questions, discussions on trade offs and how I could optimise things. I honestly didn't think I did well in this at all, the interviewer was really nice but he just identified a lot of issues with some of my choices. When this happened I acknowledged the issue with the design and just tried my best to optimise where possible.
Round 4 - Behavioural
To my suprise, I was informed that the feedback was positive a day later and scheduled my final round with a member of recruitment and a senior engineer to discuss my past experiences and motivations for the role. This round wasn't technical at all and mainly just consisted of standard behavioural questions like name a time, what did you learn from X experience, how would you change your approach based on a failure you experienced etc. etc. They also asked about any other offers/interview processes I'm currently in. I was told they always get back to all candidates whether successful or not and that I should hear within a week.
Finally a few days later I received an email saying they would like to extend an offer and scheduled a call to discuss details.
How I Prepared
I'm not one to grind LC (I value my sanity), so was just strategic in doing the bare minimum/only the top 10 or so BBG tagged q's and ones which I saw came up frequently in dicussion posts to fill any gaps. If you don't want to rely on luck then I would consider doing maybe top 50-100 in the last 6 months or if you don't have premium just religiously go through every discuss post regarding BBG interviews and do those questions. Otherwise, if you have a general grasp of DSA you'll be absolutely fine!
For system design prep I just briefly read through the system design primer readme file. I would say 90% of the interview was more focused on microservices and what they would be responsible for as well as DB design/how often we would read/write to them etc. Only the last 10% was more focused on scalability/load balancing/caching, so I really don't think they place too high expectations on new grads for this round regarding distributed systems concepts. If you appear to be knowledgable I'm sure they would try to push you and see where you can take things but if you are a beginner like me they seem to not have too high expectations.
Main Advice
Finally, good luck if you are in the interview process (I believe they have several training dates throughout the year still available) and I hope this helped someone!