Summer Internship Program - selection process (Arista Networks)
SIP - Arista Networks
2022
I was "not selected" by more than 12 IT companies before I was selected as an SDE intern by Arista Networks. I was never shortlisted beyond the first (coding) rounds, until Arista's.
Resume
Plus points on the resume (I think):
- Small list of "technical proficiency": I only put JavaSE because if I could choose the topics of discussion where I could exhibit my strengths, it would have been Java. It is not about the length of the list but the confidence in every item.
- Project variety: Every project was different, and every project talked about my exposure to a specific set of technologies.
- IT internship (PS1): I had only 1 work experience but that was in the IT sector.
Where my resume lacked:
- Non-CS branch: Before I was selected, 30+ CS students were selected and only 1 or 2 non-CS were selected for IT roles.
- Relatively low CPGA: compared to those who were being shortlisted after every round, 8.1 was not good enough.
Arista Job Profile
First Round
![]() |
Part 1 and 2
Questions were mainly from
- basic data structures
- time complexity analysis
- familiarity with concepts in computer networks (DNS, load balancing, IP subnetting, etc.)
The questions mostly required familiarity and not in-depth knowledge (that's my take on the difficulty of the questions)
Part 3
They were 2 coding questions. Many got 1 of the 2.
The other question was something along these lines:
Given a string through the input, which is known to be in HTML parse the string using these rules:
- replace <br> with new line
- replace another tag of type <tag>...</tag> with something (it was explained well in the question, I don't remember it now)
- the whole input string was partitioned based on a string pattern
We did not have access to the see the test cases but only how many passed. Everything passed for me, but it was rumoured that those who used C/C++ could not pass all test cases. I used the Scanner class (in Java) and the useDelimiter() function to partition the string as and when read from the input stream (I think that might have been something the test cases were validating)
Interview preparation
Go through networks basics
My Dad told me what important with respect to computer networks because he'd been working in networks for more than two decades now. He even helped me out to cover some basics, over a video call in an hour or two, the important interview questions from networks.
Consulted a senior
Ankit Patel, a senior from my college, who also got an internship at Arista Networks in the previous academic year, gave me his valuable insights about how his interview process went.
``` Arista Summer Intern interview:
```
Round 1: Technical Started with intro and moved directly towards DSA questions. Que 1 leetcode medium bit manipulation. Que 2 Medium to easy LinkedList question. After DSA questions interviewer asked me to a design question related to external sorting https://www.geeksforgeeks.org/external-sorting/amp/
Round 2: Technical+ HR
Started with intro and my journey with web development. After 10 mins of discussion, interviewer asked me to pickup one of the projects from my resume and explain what it does and how was it implemented. Then later on he asked to explain one of the component in-depth. I had previous experience with microservices so I was asked some related questions. At the end he asked why do I want to work at Arista and HR related stuff.
Interviews were 1 and 1.5 hrs long respectively. Both the interviewers were very friendly and supportive
```-- Ankit Patel
Interview Round
Both the interviews happened after 3 days on 14th September, 2022. We had to the go the Placement Unit office, and we were given separate rooms for the interviews. The interviews were, however, online over Google Meet. For coding we used an interactive editor where both the interviewer and I could simultaneously change the code.
Technical round
Q1) Given a Binary tree with an int data in every node, modify the function such that every node's data is replaced with the sum of the data in its descendants and itself.
Discussions:
- what is a tree?
- what is a binary tree?
- Brute force:
(assuming balanced tree for complexity calculation)
traverse the tree from the root (O(n); n = total nodes in a tree),
for every node,
find the sum of its descendants (O(n); n = descendants),
Complexity O(n^2); n = total number of nodes in tree - Optimisation:
Instead of the top-down approach, use the bottom-up approach
int sumBelow(node) {
if (node==null) return 0;
int sum= sumBelow(node.left) + sumBelow(node.right);
node.val += sum;
return node.val;
}
Complexity O(n); n = total number of nodes in tree - Can this be done without recursion/function stack ?
Can this be done without recursion?
I could use my own stack which would push and pop nodes.
Would it be faster?
Yes but there would be not much of a difference.
Would it be more complex to code?
It was become a little more difficult to code but it would be doable.
Estimate by how much it would become more complex?
Maybe 7-9%
Then I had to code it. I tried for a while but I could not converge to a solution. I got runtime errors. I didn't reach the part where I only had to correct my output (I didn't get any output).
Then the interviewer told me that in fact the code becomes 120-150% more complex while doing this and not just 7-9%. And since this Stack is lighter than the function stack (as it does not have the additional overhead of local variables, etc.), it would definitely be faster but at the cost of a very complex code. I later coded it up when I reached back in my room, I realised that the recursive solution is much easier to code.
Q2) Given an int array of length n, print the most frequent int in a window size of k (k<n) for all the possible windows from the left.
Discussions:
- Brute force:
traverse through the array (O(n)),
for every node,
find the max in the window (O(k)),
Complexity O(n*k) - Linear time algorithm
I told him that depending on the constrains on the range of integers in the int array I could, I would decide between the space complexities of O(n) or O(k). I explained how I wanted to store the frequency of elements and the algorithm would be complete but the deciding the data structures would affect the overall performance. I coded up a semi-optimised code and it was satisfactory.
Q3) Java Question.
I was given an incomplete class and I had to Override the hashCode() and equals(Object o) functions. I was asked to write a production level code and the interviewer helped me out with this one by giving me hints, because I told him that I didn't know what a "production level code" meant.
Although he walked me through it, I had to know the
I was given an incomplete class and I had to Override the hashCode() and equals(Object o) functions. I was asked to write a production level code and the interviewer helped me out with this one by giving me hints, because I told him that I didn't know what a "production level code" meant.
Although he walked me through it, I had to know the
- hashCode() and equals(Object o) functions of the Object class.
- super class and subclass concepts
- Instantiating a super class object with its sub class (Overriding concepts)
- using the instanceof operator
- exception handling
Manager round
I didn't have to code anything. It was all discussions over Google Meet. Some of the other candidates were asked to code in the second round too.
- Internship (PS-1)
- Explain the project I was working on?
The slides I had prepared for the end of PS-1, helped me during this explanation. More details about this project is available here. - How did I contribute?
Beyond the basic functionalities I had implemented (which was mostly covered in the explanation of the project), I also told him about an incident where I fixed a part of the code which was not assigned to me. - "API based programming" certificate from Postman
- What is an API?
- What is Postman?
- Why REST APIs?
- What did I do for the certificate?
- Java
We discussed about Java and other OOP concepts the most in this interview. - Differences between Java and C/C++
- Problems which Java addressed
- JRE, JVM, JDK
- Stack and Heap memory
- Garbage collection
- Pass by value and pass by reference
Offer letter
We were asked to share our academic transcripts.
We were also asked about our preferences of working in Bangalore or Pune.
Although we were told that we've been shortlisted for the final offer, we finally got it on 22nd December, 2022. The stipend was increased from 65,000 per month to 75,000 per month and a one-time sign-on bonus of 50,000. I got the Bangalore office according to my preference.
Misc info
After being rejected by so many companies. I stopped researching about companies before they opened their job profiles on superset. However, I never stopped applying for all the IT opportunities that appeared on superset. Although some companies took nobody, and some mass-hirers took very few. With the end of Covid-19, and the onset of the recession in the IT sector, things were looking bleak. However, one must never lose heart and keep trying, because what else would you rather do?
During the online MCQ round, I misunderstood the time division of Part 1 (part 1 + part 2) and Part 2 (part 3). After finishing Part 1, I assumed the next part is the final part which was the coding round (which was actually the part 3). I waited for the timer to run out on part 1, so that I could move the next part. Unfortunately, I didn't realise that it was a combined timer for both part 1 and part 2. It was too late when I realised that the new timer was only for part 3 and I completely missed the part 2 of the online test.
Some appeared to the interviews clean-shaven and in suits. However, I neither did I shave nor wear a suit. I wore a tie though. Thing is, I couldn't spend a lot of time looking good because I wanted to be chosen not because I could look good, but because I could contribute intellectually. I've also known the IT industry to not care much about one's attire as long as it is decent.





Comments
Post a Comment