CommVault Interview Experience for SDE Internship
Round 1: It starts after the prescreening process is done. Almost all the students from all the campuses of SRM made their way to this round.
So CommVault gave us a choice of SDE or SDET. I opted for SDE because I am interested in only Software Development and didn’t want to do anything related to testing.
The first round started with Aptitude and questions related to the Programming language that you have opted for(In my case it was Java, The options that were available were C++/JAVA for SDE, and for SDET we had JAVA/C++/Python).
This round was taken on an online platform that hosted the test, and we were monitored using our webcams. Aptitude questions were basic and logical. In the Java section, the questions were a bit tricky and most of them were related to the concepts of OOPS. 45 minutes were given for the whole test with a total of 25 questions.
Round 2: So moving on to Round 2, It was a coding challenge we were given 4 Questions I was able to solve 2 problems complete with all test cases running and 1 question with 2 test cases running.
The questions were not very hard but the time limit was less. They gave us 65 mins to solve 4 problems. The problems were based on Graphs, Greedy Approach, Linked List, Dynamic Programming.
- Greedy Problem: It was a very popular Fractional Knapsack problem.
- Reverse Linked List in K group: Reverse a Linked List in groups of a given size
- Dynamic Programming: The question was similar to the staircase problem where you can go 1 step or 2 steps at a time, and you have to tell how many steps will you take to reach the destination. So the question was:- There is a frog and in front of him there is a lake of N length want to cross the lake, but he can only jump almost M meters at a time. There are N-1 stones in the lake on which the frog can jump, these stones are at a 1-meter distance. You have to tell the Number of Possible ways for the frog to reach the other side of the lake.
There was a question related to the graph which I didn’t read because of the time limit.
That’s it for this round. 26 students were selected for the next Long coding round. Long Coding Round was going to be 4-5 hours long, and I was scared as hell.
Round 3: So round 3 was a Long Coding Challenge. I had no clue what they were going to ask in this round. I tried searching online and after reading all the stuff all I could think of was I can’t do it. All the questions that I found looked like they will ask us to code a file system or something related to Linux. But in reality, it was a completely different experience. I really liked this round. This round sure did test my Object-oriented programming skills and logical ability to store data into a self-designed Data Structure.
This round started at 8:40 am. We were briefly introduced to what we were going to do. There were 26 students that were selected for this round, we were divided into groups of three but the task was to be performed independently.
The problem was: We have to design an mp3 player. Sounds complicated right? But no we don’t have to make any user interface or read any files nothing like that. We had to design a program that can store different song details. The main player list, multiple playlists and we had to perform different operations on them.
Okay, this might look complicated. Here is what I did.
I made a class Song that contained attributes like song name, length of the song, copyright, singer. Made constructor and initialized values when an object is created.
Made another class for Playlist. That is going to have a hashmap of SongName as key and Song as its Value.
Made another class called mp3Player for the whole logical operation.
And then there was this Main class that was provided to us as a template so that we can design the missing functions.I think this was the round that almost made me cry. I was so disheartened after this round, it felt like everything I have been doing for the past two months means nothing.
So this round was of 2hours. Yes, you heard it right, there were 2 interviewers and I must say they were brilliant. I was so surprised that after working for so long in a company they remember each and every small concept of almost all of CSE core subjects.
So as the interview started they asked me to introduce myself. Then they asked me about my projects. I told them that I prefer JAVA over other languages.
So the asked me these questions:
- What is a JAVA compiler and how does Java run a code.
- Name of JAVA compiler – Java in time compiler(I didn’t have a clue at that time).
- How does Java supports OOPS & What are OOPS principles.
- How many types of Polymorphism are there?
- Give real-life examples of Runtime Polymorphism?
- How does Runtime polymorphism different from static polymorphism?
- Real-life use of Inheritance?
- What is faster Java or C? and Why?
- Why do you code in Java and not C++?
- What frameworks have I worked on?
- Implementation of HashMap in Java?
- Why do we use just Map while in the left half of Map<Integer, Integer> m=new HashMap<>(); and why I have not used HashMap instead of Map?
- Difference between Iterators and Enumerators.
- DBMS ACID properties.
- Normalisation and its types?
- What is DeadLock?
- Difference between Process and a Thread?
- How will the memory consumption vary in these cases, there is a Process containing 1 thread and there is a Process containing 0 thread?
- What are annotations? What do they do?
- What are Semaphores?
- What are Scheduling Algorithms?
- What are directed and undirected graphs?
- Can an undirected Graph be a Tree? If yes what are the necessary conditions?
- Difference between Structure and a Union in C?
- Why do we use Unions? Give real-life examples where a Union is suitable for use?
- How is multi-threading achieved in Java?
- How to make sure that two running threads using the same function do not collide and results in an unwanted output?
- There is a sorted array that is rotated. You have to find if the element is present in the array and return its index. If not present return 0. This operation should be done in LogN time.
- Here is an array of integers, You have to find the length of the longest subarray that contains consecutive integers. Return the length on the longest Subarray. This should be done in O(N) time.
- Given an array of integers. You have to create a new array of the same size that will contain the value of the next Greater element with a minimum difference at each position of the array.
Question=> 2 5 3 1 5 8 34 23 2 Answer => 3 8 5 2 8 23 -1 -1 -1