Kshitij Narkhede
Arista Network Interview Experience
Arista Networks is a dream category company. Therefore only Around 350 candidates were shortlisted for the Online Assessment (OA) based on CGPA and Automata scores.
Round 1: Online Assessment (28 Aug)
The OA consisted of 15 MCQs on core subjects and C programming, along with 3 coding questions:
- Q1: LeetCode Medium-Hard or Codeforces Div2D level problem based on Greedy + Binary Search
- Q2: A Sweep Line Algorithm problem
- Q3: A Graph-based problem
I was able to solve all test cases of Q1 and achieved partial scores on Q2 and Q3.
Verdict: Top 6 candidates were selected for the next round at Arista’s office.
Round 2: Technical Round 1 (2 hrs 15 min, FTF, 29 Aug)
Interview started with my brief introduction including Projects and Competitive Programming profiles. Many candidates copied in the OA, so he asked me to explain all OA questions and approaches orally. I explained my approach on pen and paper, also explained how I reached that solution. He was pretty much convinced that at least I didn't copy or memorized solutions.
Then he gave me a code snippet in C language and made me identify the errors without running it. It had some syntactical errors and logical ones (like missing base case for Recursive function).
Then he gave me a simple DSA question on linked list: Remove Duplicates from Sorted List.
I started with brute force using extra space. Then we discussed the Time and Space Complexity.
He asked me to optimise it. So I explained to him a two pointer approach of Amortized Time Complexity as O(N) and O(1) Space Complexity.
He said to implement it. So I had to implement the entire question including building the linked list itself from input, printing the linked list and the solution.
It passed all test cases in one go without any error. So we moved on to the next question: Given a Target and array of integers find first and last position of Target in the array.
Again I started with brute force, implemented it (again passed all test cases in one go). We discussed its complexity. Then he just orally asked how could you optimize it. So I explained to him Upper and Lower Bound Concept.
Interview ended with question from my side.
Verdict: 3 Candidates were selected for next round including me.
Round 3: Technical Round 2 (1.5 hrs, FTF)
This Round was brutal. Interview started with my brief introduction.
He asked some questions on my first project (pretty standard questions). Then he asked me to draw the HLD of my project on paper. I was able to draw it and explain the entire workflow.
Interview was going fine until now. I had used Socket.io in Project. He asked me some questions on the internal implementation of Socket.io. I never read about it so I guessed it based on my CN knowledge. Which made the matters even worse as the follow up questions got exponentially harder. I was not able to answer it, so we moved to the next section.
He asked me my favorite subject. I thought for a second if I should say CN or OS.
I said OS. Then we had a 5 minute discussion about my pause. He was crushing me mentally. I somehow got away with it by saying we had SPOS practical and CN Oral, so I chose OS as I had implemented it.
He then asked me to implement a LRU Cache which retrieves in O(1) Complexity on paper.
I already knew the most optimized solution using Doubly Linked List. I was thinking of using list STL of C++ for Doubly Linked List. So while discussing the data structures I said we could implement cache using a HashMap which maps keys to pair of {value, iterator}.
He quickly asked me why iterators and not pointers. He then asked me to implement List STL in C language especially the iterator logic internally used in List STL.
I tried my best to implement it on paper. Even while implementing he asked questions about literally each and every technical word I said. He constantly came to the question why did I use the word iterator and not pointer. I have answered this question 3-4 times still he was not convinced. I feel he wanted to know at the depth where we never even went.
Interview ended with a very good 20 min discussion about software engineering field. I knew I was not able to cut with it.
Verdict: Everyone was rejected in Round 2.
Learnings and Conclusion
The OA was on HackerRank, and I feel it can detect AI-generated or copied code. This might explain why I was able to make it to the top 6 despite solving only one problem completely.
Arista had a CGPA criteria of 9 last year, so I never really prepared for Arista. I had one day to revise all core subjects and C Language (especially that memory related shit) in deep.
I would advice everyone to be very very good at fundamentals if you are preparing for Arista and start early.
In Round 2 I was constantly trying to divert the discussion to DSA at the start. I think he got pissed because of that.
Also @Juniors don’t get overwhelmed by the time duration or going overtime. 2 hrs feel like 2 mins in the interview room.
More time often means the interviewer sees potential in you, so stay composed.
This was my first OnCampus Interview, and though I didn’t clear it, it gave me confidence. I’m determined to prepare harder and crack tougher interviews in the future.
All the Best Everyone! 🚀