Giving back to the community!!
Background: SDE1 at FAANG
Experience: 1.5-2 yrs
Applied to SDE position for 2+ yrs experience at Rubrik in Jan'24 end through referral, recruiter reached out after 2 weeks or so and screening round was scheduled.
Round 1- Screening Round (Mutltithreading)
It involved solving a DSA problem and then follow up for a multithreading scenario, It was conducted over Coderpad platform, where you are suppose to write code and run it as well, interviewer was cross questioning for choice of data structure chosen and algorithm employed along with TC and Space Complexity.
Problem Statement: https://leetcode.com/problems/web-crawler/
This round went pretty well, it lasted for 1 hr.
After this round, recruiter reached out the next day to schedule further rounds.
Round 2- Multithreading
This round also involved solving a multithreading problem over Coderpad, it went for 45 mins. The problem is essentially a resource allocation problem where you are expected to describe diffrent resource allocation policies in OS along with their pros and cons, here I had explained all approaches and implemented the FIFO solution, I was abe to solve the problem and run it on the platform.
Problem Statement:
There is single Bathroom to be used in a Voting agency for both Democrats(D) and Republicans(R) * This single Bathroom which can accomodate 3 people at most * each person takes f(N) secs to do his thing. f(N) is a function of the person's name and returns varying number * CONDITION: At any given time, the bathroom cannot have a mixed set of people i.e. * CONDITION: Bathroom can have at most 3 people * these combinations aren't allowed (2D, 1R) or (1D,1R) * These are allowed (), (3D), (2D), (1R) i.e. pure Republicans or Pure Democrats * While the bathroom is occupied people are to wait in a queue * What is the most optimal system where you would manage people in this queue, so that * the most eligible person instants gets to use the bathroom whenever its has room, based on above conditions
Round 3- DSA
This round was a standard problem solving round.
Problem Statement:
You are expected to implement a data structure which will give random numbers between 1 to N and you are not supposed to repeat a number in a window until all numbers b/w 1- n are exhausted in that window.
Ex: N =3
possible outcomes: 1, 3,2,| 3,1,2 ...
I provided a solution with two hashset with TC O(1) ans space O(n), but the interviewer was interested in a solution using Arrays, after thorough discussion I was able to solve it using array and creating sections in array by push_back and pop_back, builtin methods.
Round 4 - System Design
This was my first Sytem Design interview, I had prepared all famous questions like Design watsapp, newsfeed etc, but the problem that was asked involved buiding a design component for messaging b/w services like Kafka, Rabbit MQ, along with HLD we also discussed the API design and pseudo code for API implementation logic for api's to be used b/w publishers and subscribers. I had mixed feelings for this round.
Problem Statement: Design Messaging Queue
Round 5 - HM
This round was taken by VP for the organisation of the position I had applied for, it involved behavioral questions and reason for switch and very thorough grilling on my past experiences, project etc.
It felt really hard and was unable to guess the results.
After one week recruiter reached out and shared my acceptance for the position.
Verdict: Selected
It was one of the toughest interviews I have given so far, but at the end results were worth all the hard work :)
Comp details - https://leetcode.com/discuss/compensation/5139147/Rubrik-or-2yrs-exp-or-G5