Overview of Interview Process:
Initial Screening
- People from CS and circuital branches with an 8+ cgpa where allowed to sit for the process.
Online Assessment
This was conducted on hackerrank with 4 sections, 1 mcq section and 3 coding questions. All the sections are time bound and you cannot switch between the sections without submitting the current section. It is important to note that the time is carried forward if you submit a section before the timer ends.
The mcq section was for 15 mins and questions ranged from basic aptitude/math, OS ,OOPs and C fundamentals. 'Predict the output of the given code' type of questions were asked with all of them being in C/C++ so it is important that you know those languages.
The first coding question was a simple sorting and iterating through the loop kind-of question. This was given around 20-25 mins but could easily be solved in 5-10 mins.
The second coding question was a backtracking question with strings. It wasn't too complex if you have done the topic.
The third coding question was based on trees. You have been given a tree, find a shortest path to travel from 1 to N, such that you visit some given set of nodes in your path from 1 to N. You are allowed to visit the same node multiple times. Here is a similar problem.
You were expected to solve at least 2.5 coding questions and do well in the mcqs (as they had negative marking) to get shortlisted for the interview. Out of about 120 students, 15 of us were shortlisted for the interviews.
Technical-Round 1 :
This round was online for some of us while it was offline for others. It was online for me. The interview started out with a brief introduction followed by questions about C functions and pointers. A few follow-up questions on the same were asked regarding the same. Then I was given 2 DSA questions based on binary trees and heaps. These were to be solved on a online collaborative coding platform.
The first question was that given the root of a binary tree, keep deleting the leaf nodes recursively till the entire tree is deleted and then print the order of deletion. The structure of the node was like given below. You were supposed to go to a leaf node, delete it and then go to the parent and do this till the root is deleted.
struct Node
{
int val;
Node *left;
Node *right;
Node *parent;
};
I gave him an alternative approach, along with this and he seemed pretty happy with that as well.
The next question was based on heaps. Given a vector of numbers you had to take the maximum one, and put the floor of its square root back into the list k times. This could be done with a heap/priority-queue and he was pretty happy with the solution. He asked me a few more questions on OS and CN but didn't dive into details as i mentioned that we hadn't covered them as course subjects. The interview overall ended on a positive note. 9 of us moved on to the second round.
Technical-Round 2 :
This was taken by a senior from the company. He closely looked at my resume and asked me about my personal projects and was interested to know how I collaborated on the groups project for a hackathon which we won. He moved on the system design questions which involved in-depth knowledge of the data structures such as how ordered_maps are implemented in the STL libraries. He told me to implement a class which implement a hash-map and then proceeded to ask me a lot about hashing and collision resolving techniques. Overall he seemed satisfied and then asked me questions like why Arista Networks and explained to me what kind of work they do in the organization.
After this round they took 7 ppl were selected and I was happy to be one of them :)