First call with recruiter: 30 minutes.
Scheduled phone screen with an engineer: 1 hour.
Platform used: Coderpad.
The first interview was easy, and the interviewer was very professional and nice. They cared about the thinking process and pointed you in the correct direction for minor mistakes.
Started with short questions from the resume, followed by longer questions about C low-level concepts, printf function expected output, and then LeetCode questions about finding missing numbers in sorted arrays and BST in-order successor variations.
The final interviews were two 1-hour sessions scheduled for next week.
This was one of the worst interview experiences I've had so far. The interviewer did not set up the environment beforehand and asked questions about my resume to fill in the gap while setting up Coderpad, clearly not listening to my answers.
The question was to design a Stack API, and requirements were not given. I started with exploratory questions about requirements:
Described two possible implementation methods using dynamic arrays vs. linked lists and their tradeoffs:
The interviewer kept interrupting the thought process by asking too many follow-up questions (for every sentence I spoke, he asked one or two). He laughed if the answer was wrong in his opinion.
Example: "What is the time complexity of push with the dynamic array?"
My Answer: "O(1) on average. If we hit the capacity and need allocation, it takes more time."
He laughed and said, "How come reallocation can be O(1)?"
He asked to quantify the time complexity of the realloc() function, which really depends on the system. I answered that it can be constant time if there is contiguous memory available on the heap, or it might find another block and require copying, which can take O(n). However, the average time complexity of the stack is still O(1) because reallocation only happens when capacity is hit (for the nth push), after which capacity can be doubled, and so on.
Anyway, he said the linked list approach was better (15 minutes left), but then asked, "How can you remove pointer overhead?" I was really confused, as a singly linked list without a pointer is not a linked list.
He asked about the problem of holding pointers instead of copies of data and what could be done to handle it (answer: using shared_ptr).
Then he stopped the interview at the 1-hour mark and asked me to think about the homogeneous solution while he spoke to the other interviewer.
When he returned, I answered the question correctly, but he said, "Yeah, that's right, but the next interview is not going to happen. See you next time, bye!"
Overall, if I mentioned something wrong, he pushed me in the wrong direction intentionally, even when I tried to backtrack and correct myself. It was not clear at all what they were trying to gauge with this interview; he seemed to have a specific implementation in mind and was just looking for that memorized answer.
Mentioned above:
Design a Stack.
The following metrics were computed from 28 interview experiences for the Arista Networks Software Engineer role in Vancouver, British Columbia.
Arista Networks's interview process for their Software Engineer roles in Vancouver, British Columbia is extremely selective, failing the vast majority of engineers.
Candidates reported having mixed feelings for Arista Networks's Software Engineer interview process in Vancouver, British Columbia.