The entire placement procedure for Commvault took place in 4 rounds for which 1500+ students were shortlisted. In the beginning, they asked us to choose between C++ and Java. I chose Java since it is my primary language. We were not allowed to change language preferences once we have opted for it.
Round 1: Round 1 was of 2 parts. The first part consisted of basic aptitude questions. The second part consists of some good MCQ based on Java. Most of them were related to inheritance and interface. 75 students were shortlisted based on the performance of round 1.
Round 2: This round had 4 questions and the time given was nearly 1 hour. The questions were:
- Reverse every k consecutive nodes in a LinkedList.
- Given n nodes, we were given m line of input. Each line of input describes 2 nodes that are to be colored the same. We had to find the number of pairs possible such that both nodes have different colors.
- Fractional Knapsack problem.
- We have to cross a river of length n meters in which there are n-1 stones at a distance of 1 meter each. We can jump Upton m meters in a single jump. Find the number of possible ways we can cross the river.
I solved 2/4 questions in the given time. But was shortlisted for the next round as well. 25 students proceeded to the next round.
Round 3: This was a 5-hour coding round where we had to develop a program for a file system. There were few checkpoints after which the mentor will come and ask us about our progress. If we are unable to keep up with an efficient data structure, or we are not moving forward with our approach then we were asked to leave.
4 students were shortlisted for the next round, and I was one of them.
Round 4: This was a long technical round and there were many questions asked related to java, threads, some basic question from data structures, and 1 question form operating system. We were given access to their system and were made to write code during the interview.
2 students from my college were given an offer in the end.