RejectedSoftware Engineering (G5) at Rubrik
- Difficulty
- Process took
- 1-2 Weeks
- Rounds
- 3
- Format
- Remote
- Applied via
- Referral
How it went
- Even though I didn’t make it through, this experience at Rubrik was a valuable learning experience. I’m already gearing up for future opportunities with more focus on optimizing solutions and managing time effectively. To anyone preparing for multithreading or DSA-based interviews, stay focused, stay calm, and keep practicing.
What they would tell you
- Even though I didn’t make it through, this experience at Rubrik was a valuable learning experience. I’m already gearing up for future opportunities with more focus on optimizing solutions and managing time effectively. To anyone preparing for multithreading or DSA-based interviews, stay focused, stay calm, and keep practicing.
How to prepare
- While I was disappointed about the rejection, especially after performing well in the first two rounds, I see this as an opportunity to improve. In hindsight, I realized that time management and optimizing solutions quickly in DSA rounds are crucial.
- Always explain your approach clearly, even if you get stuck, and ensure your thought process is well-structured. It’s okay if you don’t have a perfect solution as long as you show how you think through the problem.
Round by round
- 1
Multithreading Interview60 min
I applied through a referral, and the entire process spanned four rounds The interview started with a warm introduction. The interviewer was friendly, which helped calm my nerves. The problem revolved around task dependencies, where a set of tasks needed to be executed in a specific order. Problem:
- Task 0 starts first,
- Once Task 0 is completed, Task 1 gets unlocked,
- After Task 0 and Task 1 are completed, Task 2 gets unlocked. I implemented a solution using multithreading to handle the dependencies and ensure the tasks were executed in the correct order. The interviewer seemed satisfied with my approach and how I managed concurrency.
- 2
Advanced Multithreading60 min
This round was a bit trickier and resembled the classic Bathroom Problem where multiple groups need access to a shared resource. The interviewer asked for various extensions to the problem to test my handling of concurrency. Problem Variations:
- How would you handle more than two groups requesting access to the same resource?
- How would you manage multiple resources/fields?
- How could you introduce priorities among different groups? I implemented solutions for each of the scenarios, ensuring resource allocation was managed properly and deadlocks were avoided.
- 3
DSA60 min
This round presented me with a challenge where I had to work with an infinite stream of numbers and determine the rank of a number (its position in descending order). It was a tough problem, especially when trying to manage infinite data. Initial Approach:
-
I started with a list and used binary search for insertion and lookup. This worked, but it didn’t efficiently handle space issues caused by the infinite stream. Optimized Approach:
-
I realized a binary search tree (BST) would be more efficient for insertion and search operations (log(N) complexity), reducing space usage significantly. However, I couldn’t finish the solution on time. Unfortunately, I only had 5 minutes left by the time I arrived at the optimized approach, and I couldn’t finish the code. The interviewer acknowledged my thought process, but the lack of a complete solution led to rejection.
-
What came up
A candidate-reported account, lightly edited. Interview processes change by team and date.