Coding My Way to Cloud Nine: A Rubrik Adventure

Kushaz Sehgal
8 min readNov 8, 2023

--

Introduction

Hi guys! I am Kushaz Sehgal, a fourth-year dual degree student pursuing Computer Science and Engineering at IIT Kharagpur. I just finished my CDC Internship process, and I will be interning at Rubrik, Palo Alto in the summer of 2024.

The Journey

I started a bit of competitive programming in my 2nd semester, Although I wasn’t strictly working hard to improve, I did enjoy it. I believe this was the best decision I took in my first year, just starting early! Don’t misunderstand me, I, by any means, don’t expect anyone to start CP grinding so soon. But I feel that just knowing something like this exists, helps a ton! As people do in their first 2 years of college life, I too was exploring many things at the same time, trying to figure out what I enjoy doing. Luckily, I had a partner in crime — Dhruv Chitkara, an old friend of mine from my school, who loved doing CP. We ended up discussing the easiest of problems for hours and hours, but we enjoyed every second of it. A special mention to Utsav Mehta (my batchmate in CSE dept), with whom I spent my entire 2nd year of college (although online), he is one of the most hardworking guys I have ever met, and his relentlessness rubbed off on me to make me work on things I am passionate about even in the boredom of online sem.

Along with CP, I was exploring a bit of development as well, although I got bored very quickly (…). Anyway, I spent most of my 2nd year exploring Artificial Intelligence. The craze of ML and my commitments in KRSSG (A Robotics/AI research group at KGP) led me to gain an interest in Deep Learning, I ended up studying the entire Stanford Course on Machine Learning (CS229) parallelly with my academic courses. I believe this, along with the probability and statistics and linear algebra courses in my curricula helped me make a solid foundation in mathematics. Experimenting with Linux and doing various DL projects also made me more hands-on, and I believe it really helped me hone my skills as a programmer.

My commitments during my 3rd Year, namely Inter IIT Tech Meet, ICPC Regionalist and the core systems courses in my curricula helped me finally choose systems as my core domain. My ICPC Teammates — Karan Ralhan and Swapnil Yasawi, both great programmers with a widely distinct approach to problems made me realize the importance of structured thinking. They became my go-to guys whenever I felt like having an intense discussion to understand a problem. The knowledge I gained, and the relationships I was able to build during my work at Inter IIT were priceless. I constantly bugged Satvik Bansal, Parth Jindal and Rohit Raj (all seniors I worked with during Inter IIT) my entire CDC summers for the smallest of doubts. I was extremely lucky to have them as my mentors.

The Preparation

I had already decided that instead of trying to do everything, I’ll limit my resources, but I’ll ensure that I utilize them to the fullest. I ended up on the following — Regularly Reading Blogs from USACO, articles from CP Algorithms and the Competitive Programming Handbook. I strongly believe, and I can’t stress this enough, that instead of watching a video or getting someone to explain a topic, reading it on your own will give you insights that you might normally not think about and make you grasp the core fundamentals, which you will never forget. For Problem-Solving, I prioritized solving CSES Problemset and InterviewBit, and only in the very end I solved Leetcode problems with topic-wise tags. Solving medium-hard problems from Leetcode is a very good way to revise topics, especially for DP and graphs. Although, I would recommend choosing Leetcode or Interviewbit (only one of the two not both) and sticking with it, and not trying to do everything all at once. If someone wants to do even more problems, I would highly recommend solving Atcoder problems (and highly recommend NOT solving on Codeforces, as they are becoming more and more irrelevant for CDC)

For Studying Object Oriented Programming, I studied the C++ course available on Scaler, an extremely detailed and vigorous course covering all core principles needed by a systems engineer.I also revised Computer Networks and Operating Systems from my notes from the 6th Semester.

I barely did any specific preparation for Quant, so I won’t be discussing that here.

For interviews, I asked a few of my fellow batchmates (Shivansh Shukla and Aniket Kumar) to take a mock interview, so that I’m better prepared for what’s to come.

If someone wishes to follow a certain timeline, here’s what I would recommend -

  1. Follow the topics according to CPH, read the USACO articles and solve the questions in USACO as well as the CSES problem set (this is the first time you read about a topic)
  2. Solving Interviewbit will take at least 45 days, so plan to start accordingly (this is revising a topic stage)
  3. I would also recommend maintaining a document with topic-wise questions you thought were important, which would help you revise late.
  4. I would say focus on CP for the first half of pre-CDC summers, only in the latter half start working on OOPS, OS and Networks, and doing these topics simultaneously while revising CP

Once again, don’t try to do too much, focus on a few things but make sure you do them well.

The Interviews

I gave interviews for a total of 3 companies, namely — Optiver (SWE), Google and Rubrik. I’ll briefly discuss their coding tests and the interview rounds

Google

Coding Round

Google conducts a common coding round across all colleges with a time window of around 4 hours to give the test. The test basically consisted of an exhaustive list of 6 questions, 2 of which were randomly allotted to each person, to be solved within an hour. Google is notorious for testing very hard problems, with topics including Graphs and Segment Trees.

Interview Round

I only gave the first interview round (conducted on day zero) scheduled for every person shortlisted for Google. The interview was pretty straightforward, I was given a code editor (Yup, now Google does not ask to code on Google Docs!!) and was given 2 problems based on trees. First was a pretty straightforward problem to find the diameter of a tree, the next was building on this to formulate a harder DP problem. I actually required a hint to solve it, and also barely was able to finish coding the algorithm but we had a healthy discussion during the interview, so I was happy with my performance.

Optiver

Coding + Tests Round

Optiver has a pretty standard procedure of evaluation. They conduct a coding round (which is implementation-heavy and not CP-heavy, a pretty important thing to note) and an MCQ round for testing OS and Network knowledge. They also have a platform where they test on a few simple games (based on speed and memory)

I believe the coding questions weren’t hard at all from an algorithms standpoint, they were just implementation-heavy, a person could easily solve them if they had the patience to debug a few mistakes

Interview

I gave a total of 3 interviews for Optiver.

First was a simple HR round, I was asked basic questions like what did you like about the PPT and what are your strengths/weaknesses etc.

The second was an algorithmic-based round, I was pretty scared because we only had the option of coding in Python, and I had never done CP in Python so I did not know the syntax of the simplest of data structures in Python. Luckily, the interviewer did not expect correct code at all, instead, he told me I could write C++ syntax in Python if I wanted to. He only asked me to stick with a certain standard (i.e. stick with C++-like syntax and don’t switch to Python in between) and did not want working code. He just wanted to check how quickly I could think of the data structures required to store the information I needed to solve the problem and formulate the algorithm in a structured manner. Lastly, he wanted me to figure out any bugs or mistakes in my code. Whenever I made a mistake, he made me ask questions to figure out where the problem was, and after figuring out the problem I had to rectify it.

I again reiterate that this was not a CP-heavy round, only a round to observe structured thinking and ask the right questions to debug the code.

The third interview was based on architectural design. The interviewer defined a scenario for establishing a connection with a server inside a stock exchange for setting up a buy-sell application on the client’s side. It was an open-ended discussion, with the interviewer asking more and more questions to dive deeper into the design and the algorithmic implementation for sending stocks and how the connection would be established. The interview had no “right answer” and I led the discussion wherever I felt I could show my expertise.

Rubrik

Coding Round

Rubrik is notorious for holding tough coding rounds. The coding round consisted of 4 questions and 1.5 hours to solve them. The questions did not involve complex techniques, only involved basic ideas like DP, string manipulation and priority queues. They were easily solvable if one did not get stuck on complex ideas involving complex algorithms.

Interview Round

The interviews for Rubrik started at 12:00 a.m, I gave a total of 3 interviews, without any breaks, two of them were coding interviews wherein I had to solve a single question on CP and the last was an offline HR interview. The target of the coding rounds was to simply explain the algorithm and code it all up within the stipulated time of 45 minutes, I had to run my code on simple test cases and explain it with dry runs. The questions were pretty tough, both involved dynamic programming, the first question was on 2D string DP with something related to palindromes and the second one was a problem on graphs and BITMASK DP. I was extremely happy with my performance as I solved both the questions within the time. The HR round was the most interesting round of them all, the interviewer was very engaging and asked me questions that forced me to bring out the best in myself. I explained my prior experiences, namely my internships and my work in Inter IIT, we also discussed a few things on software standards, like debugging and testing of code on an enterprise level. All in all, the interview was a great experience for me and I enjoyed giving them!

Finally around 1.45 after giving all 3 of my interviews for Rubrik, I was told that I had received an offer from Rubrik US. I couldn’t control my excitement on hearing I received an international offer, I was given Rubrik Merchandise and then straightaway called my Mom to tell her the good news!!

The End

I would like to thank my friends and family who have supported me in this journey on every step of the way. I would like to thank my Mother who has been my pillar of support my entire life, and has always pushed me to demand more from myself! Lastly, I would like to thank Shivam Raj, my roommate who took care of me during the sleepless nights I had during the interview process.

--

--