I recently attended SWE (L4) Interviews at Rubrik. This post is to give back to the leetcode community. Hope it helps.
There were a total of 5 rounds:
Rubrik focusses more on multithreading, concurrency and synchronization techniques. Focussing more on these and OS fundamentals helps a lot during interviews. Adding some details for each round and what all I focussed per round.
System Coding 1: In this round, they focus on concurrency, multithreading, process, memory management and synchronization concepts. **Question I was asked: **: Design a job scheduler that runs all available jobs in an optimized manner, considering job dependencies. You can assume the existence of a function get_next_jobs(finished_jobs) that returns all jobs whose dependencies are fully satisfied based on the currently finished jobs. A job can only be executed after all of its parent (dependent) jobs are complete.
Algo Coding: Here they ask Medium to Hard level Leetcode question, similar to any other FAANG interviews. Question I got: You will receive a stream of data. For each item, return the minimum absolute difference between any two elements among the last K elements in the stream.
System Coding 2: There is a playground that can be accessed by only one team at a time, with a maximum of 10 players allowed concurrently. Multiple players from different teams may attempt to access the playground simultaneously. How would you design the system to assign players to the playground while enforcing these constraints? (They will ask about different approaches you can take to avoid starvation of any player)
System Design: Design a system similar to LinkedIn Connections that can answer the query: "How many levels (or degrees) of connection exist between two users?" For example, direct connections are 1st-degree, friends of friends are 2nd-degree, and so on. The system should efficiently handle up to 1 billion users.
Hiring Manager and Technical Deep Dive: This round basically focusses on one of the projects you worked on in past (deep dive). You should be aware of all the challenges you faces, decisions you made while working on project etc. They will also ask some behavioral questions.
All the rounds mostly challenge your concepts, most of the questions can't be found on leetcode but if you prepare your fundamentals right then you can take it as a discussion. There were times in interview when interviewer said there is no right or wrong, so you can share your opinion. My Advice: Focus on fundamentals and take it as a discussion. Things should go right.
For System coding, since its different from regular FAANG interviews try compiling all recent interview questions (you can get it on leetcode/reddit). Then try solving one at a time, note down all the concepts that you should know to solve question, then read in detail about those concepts. This helped me, you can think of whatever works for you.
Having good OS fundamentals also helps. You can go through memory management and process synchronization sections of OS.
Status: Awaiting Response from recruiter.