Commvault Systems Interview Experience for Software Development Engineer
Commvault visited our campus for the profile of Software Development Engineer(Internship + Full Time). They also had the SDET profile, but I applied for SDE only. The whole process was in three different rounds, as described below :
We were made to select the language of our choice the night before the first round – we had to choose between C++ or Java for the SDE profile. The language selected would be used to judge us in this and the further rounds and changing the language was not allowed after this stage. I chose C++.
Round 1: This round was conducted on the geeekd platform and was the major screening round. It consisted of two sections.
Section 1: It consisted of 15 MCQs on the language chosen. For C++, questions based on output prediction, object-oriented concepts, pointers, operator overloading, scope resolution operator, and data file handling were asked. These MCQs were to be answered within 25 minutes.
Section 2: It was a coding round, and we had to code in the language chosen earlier. We were allowed to use original STL, as per C++03 standards. This round consisted of three programming questions to be solved in 40 minutes.
The programming questions were not exactly, but somewhat like:
- The longest palindromic substring problem
- Sum of the maximums for every window size in an array
- Paint House problem
I solved all the problems correctly.
The result of this round was declared after 3 days, and I had qualified for the next round which was supposed to take place after two days.
Round 2: This round was the most exciting and challenging of all, as this involved both design and DSA knowledge. We were asked to design a file system in the same language as chosen by us before. Some of the operations we had to perform in our file system were :
- Create a file
- Delete a file
- Copy a file to the given path
- Move a file to the given path
- Maintain multiple versions of the same file
- Revert to an older version whenever required
We had to write the code for the same in their virtual machines using Remote Desktop, the credentials to which were provided to us a day before the round.
- We also had a meeting with the senior officials of Commvault the night before this round, in which we were told some details like how long the round will last, at what time does the round start, and all of our doubts were cleared if we had any. Also, in the morning, before the coding actually begun, we were explained the problem statement thoroughly by the officials of the company.
- It was a 6-7 hour long round, and we were assigned mentors who were connected with us via Zoom and would check our progress at periodic intervals and also resolve our doubts and queries. In the first hour, we were expected to be ready with the design of our file system, and we had to fill the provided classes with data members and member functions that we were planning to use. Anyone who was unable to come up with a design was asked to leave by the assigned mentor. Also, during the coding phase, if anyone’s performance was not satisfactory, they were asked to leave too. Everyone in my room(there were multiple rooms) except me was asked to leave, as after sometime, my mentor stayed with me the whole time. We were expected to write a running code, and the output should be correct as well. If we encountered any bugs, our mentors helped us by pointing out where the error might be. We were allowed to use C++14 in this round, which was a relief for me.
- The mentors were very helpful and motivating, and so were the top officials of the company who addressed us before the round started.
- The result of this round was not declared formally, but I made it to end by writing a perfectly running code and my mentor told me that someone from HR will contact me soon, so I assumed that I had qualified this round. Two hours later I received a call from HR to join a Zoom meeting, where the panelists were waiting for me for the third round – the technical interview.
Round 3: This round was a technical interview and discussion, in which we were tested on our theoretical as well as practical knowledge. It lasted for around 75 minutes, and I was asked to solve some coding problems like :
- All substrings containing only vowels in a string
- Implementing an LFU cache – With and without duplicate entires for keys
I was able to solve both of these problems while having a good discussion over the data structures used by me and various optimisations possible.
- The panelists were very helpful, understanding, and knowledgeable, and talked with utmost gentleness. It was an excellent discussion and the panelists helped us by giving hints if we got struck anywhere.
- We also had a discussion over my projects, which included explaining their working too.
- I was also asked about the overriding and OOPS concepts in C++. Finally, I was asked some questions based on strings and pointers.
- They then asked me if I had any questions for them, to which I asked some questions and the interview was done and I was asked to leave the room.
- After this, I was expecting an HR round, but that did not happen. 3.5 hours after the interview ended, I received an email from HR to join a zoom meeting, where the senior officials and the HR team were waiting along with the panelists to tell me that I was selected.
Out of the 25 people who had given the second round, 4 were finally selected and were present in the same meeting. All of us were offered the Internship + FTE profile.
Final Verdict: Selected!