Hi Folks,
I want to share my interview experience at Rubrik for G5 role.
This was graph problem which could be solved using topological sort.
Interviewer was more focused on code quality, since this was not a DSA round. More focused towards low level design aspects. In the end she asked me how can I make the code thread safe.
I was able to code fully working solution, ran it on few test cases. Also was able to answer the concurrency related questions.
This was a standard producer consumer problem. He gave me a cpp code where multiple threads (producer and consumer) are trying to access the critical section. Was able to find the bug after one hint.
This was again LLD + Concurrency round. I had to design a logical memory unit. Cpu can request for a page with given pageId. If the page exists in the logical memory we return it. Otherwise we fetch it from the physical memory. Also, you have to maintain all the page entries in the logical memory unit. And user may request for most recent or k-recent entries of a particular page.
Solved the problem using hashmap and linked list. Where key of the hashmap is pageId and the linked list will store all the entries of that page.
Was able to code fully working solution and ran it over few test cases.
Similar to round 1 he tested my concurrency knowledge and asked how can I make this code thread safe.
This was a standard HM round. Where in depth discussion about my current project and product's arhitecture happend for 40-45 minutes. He was asking lot of cross questions and making sure I have in depth knowledge about my service and it's architecture. Then, he asked few behavioural questions like why do you want to leave current org etc.