There were three rounds of interviews. Questions were based on coding, understanding/debugging code, OS, networks, and system design.
Round 1: Coding The question was based on IP fragmentation, where data length was divided into multiples of MTU (Maximum Transmission Unit). Defragment all received fragments into one packet.
Round 2: Asked to code an array question. Questions were based on the code I had written, tested with multiple cases.
Questions on process memory structure: Stack, heap, etc.
OS-based questions: Threads, multitasking (my code's behavior in a multiprocessor environment), paging, virtual memory, context switching, dispatcher, etc.
Given a C program snippet, predict its output and answer related questions.
Discussion about my current role at the office.
Round 3: Basic questions on networking.
OS questions: System call? Static/dynamic linking? Virtual memory? Process vs. Threads? Deadlock cases? How to handle shared data between threads?
Questions on college projects.
System design: Design a system to convert long URLs into short URLs. Need to handle insert/search and devise an algorithm for unique short URLs for all long URLs.
Buggy code snippet: Identify issues and suggest solutions.
Linked list: Handle insert/delete/get for all data types (int/char/struct) using a single linked list structure.
Design your own library to handle dynamic memory allocation/deallocation. What data structure would you maintain this information with?
The following metrics were computed from 48 interview experiences for the Arista Networks Software Engineer role in India.
Arista Networks's interview process for their Software Engineer roles in India is very selective, failing most engineers who go through it.
Candidates reported having very good feelings for Arista Networks's Software Engineer interview process in India.