Commvault visited our campus for campus recruitment. The entire process was Virtual. Before the start of the process, we were supposed to choose our preferred language. We had 3 choices- C++, Java, and Python. I selected C++. Those who selected python were put into the testing role (SDET)process.
There were 4 rounds:
- Online test (C++ MCQs + 3 coding questions)
- The famous file system design round (lasted nearly 7hours)
- Technical Interview
- HR interview (just a formality)
Online Test: There were around 10 MCQs on C++ (they were a bit tricky, mostly based on OOP). There were 3 coding questions.
- Given an array, find the leftmost element which is not unique (easily solvable by counting the frequency of the elements)
- The second question was based on dynamic programming which is very much similar to this question(instead of minimum jumps, we were asked to find the total no. of ways)
- The third question was given as a long story, but in short, we had to find the longest palindromic subtring of a given string
I was able to solve all 3. 11 of us got selected for the next round.
File system design round: We were provided the starter code which we had to complete. We had to implement around 7 functions such as createfile, readfile, getfile, modify, copy, move, delete. (No actual file handling, just a simulation!). It started at 8. We weren’t allowed to start coding right away. We were assigned a technical lead from commvault (highly experienced). We had to discuss the design first and then if he/she finds it OK, we can start coding. We were given access to their system and had to code there. We were put into different rooms via zoom and had to code while sharing our screens. Every 15-20 the lead will check on us and give us some hints if we are stuck. I finished at 3 pm (couldn’t implement all the functions, time was up). Luckily I implemented the rest of the functions correctly and explained it well to the lead. I was shortlisted for the next round. It was not a tough round though. If your basics of classes and objects are clear, you can easily implement the things. C++ STLs are important. Master them!.
Technical Interview: There were 4 panelists. I was first asked about my project (based on ML). I explained the entire project to them and then cross-questions were thrown. One of the panelists asked about my fav model. I said random forest, and then random forest questions were thrown one by one. Next, I was asked a few tricky questions regarding heaps and how they are implemented in C++ STLs. The rest of the interview was completely based on pointers and OS! From scheduling to synchronization to memory management everything was asked. Then some tricky questions on pointers like how to find the size of an integer without using sizeof the operator. If you are stuck on some questions, the panelist will give u hints.
OS questions- on virtual memory, thrashing, scheduling algorithms, printers and computers problem(counting semaphore).
HR Interview: No questions were asked. They just called to congratulate me!
Overall it was a very good experience especially the 2nd round!