Arista Networks Interview Experience
This post is to share my interview experience with Arista Networks for a Senior Software Engineer position in Bangalore(May 2019). I was initially contacted by a recruiter from the company on LinkedIn who co-ordinated the interview process.
Round 0 - Telephonic conversation with recruiter
I had a 20 minute call with the recruiter who asked about the usual things like the roles and responsibilities in my current job, reasons I’m looking for a new job, reasons I’m interested in Arista, etc. After this, I was invited directly for the on-site interview. (Yeay, no phone interview, no HackerRank screening 😄)
Round 1 - Coding + Programming language fundamentals
I arrived at the office of Arista Networks on a weekday morning, and met with a Senior Engineer in the team for my 1st round. There was a laptop in the meeting room which was used to solve any programming problems and I wasn’t given the option to use my own laptop. The round started with a coding question:
Reverse linked list in groups of k, where k refers to the numbers in fibonacci sequence
I got my solution working almost, but could not finish it within the expected time. The interviewer took a look at my code, and said he was satisfied with it (Not sure if he actually was, but that’s what he said)
He then asked me questions about my current project, and tried to test my understanding of the tools/frameworks I had mentioned on my resume.
Why kafka for messaging? (Was looking for kafka vs jms)
What is the volatile keyword in Java?
Compare atomic variables and synchronized block - When to use one or the other
How are Atomic variables implemented?
How does compare and set(CAS) work?
Implementation of singleton pattern
Round-2 - With Engineering Manager
The next round was with an Engineering manager, and I was surprised because I was expecting atleast 1 more coding round. Nevertheless, he started with the following question:
Design a email/messaging system
I asked him some questions to scope out the requirement before diving into a solution. Once the requirements were
ironed out, I started by suggesting a
pull model where the client polls the backend every x seconds - The
interviewer was very open to listening and analyzing the pros and cons of my solution (rather than expecting me to
come to the solution he had in mind)
We then discussed and agreed upon a
push model where an event can be published to a topic for new/deleted emails.
A backend server listens to these updates and pushes the notifications to (possible) multiple clients via web-socket
The next question was more of a test for one’s command line expertise and I was given the option to browse/search if needed. The question was as follows:
A block of text contains multiple bug IDs, of the pattern BUG-<BUG_ID>. The task was to print all such bug IDs
I was able to solve it relatively quickly using the
egrep command for pattern matching using regex.
After this, he gave an overview about the products his team is handling, and the road-map for the near future. Overall, he was really friendly and knowledgeable and seemed like the kind of person I would like to work for.
Round 3 - With the Managing Director
The next round was with the Managing Director of the India center. I wasn’t expecting to meet someone in such a high rank during the interview process. However, he was extremely down to earth and it felt more of a conversation than an interview. He was doing the talking most of the time, explaining about the kind of work my potential team is working on, history of the team and the roadmap for the immediate future. There were a couple of questions he sneaked in:
What is the most significant diff between a language like Java and C? - My answer was
memory management and
garbage-collection, and he started to probe more on garbage collection.
What are the cases in which memory leaks can happen in Java?
How do you identify/debug/fix memory leaks in Java applications?
What can cause memory leaks in Spring?
I did not have any more rounds, and got a confirmation from the recruiter that they will be extending me an offer. I ended up not accepting the offer, but really enjoyed the interview process. This was one of the shortest interview processes I’ve been through(only 3 rounds in total :D ), and was wrapped up with a week of having the initial conversation with the recruiter. Not many companies move this fast and this is one of the reasons I’m glad I interviewed with them.