Arista·Software Engineer·Technical Phone Screen
May 2026
Technical phone screen for a software engineer role at Arista, heavy on C fundamentals and memory model questions. Pretty low-level stuff, felt like they wanted to see if you actually understood what the compiler and OS are doing under the hood.
- Given `const char *c = "12345"`, what does each of these printf calls actually do: `printf("%s", c)`, `printf("%d", c)`, `printf("%c", c)`, `printf("%c", *c)`, `printf("%c", *(c+1))`, and what's the correct way to print the address stored in `c`?
- How would you use gdb or lldb to inspect the pointer value of `c`, the raw bytes at that address, and the string stored there?
- Compare malloc/free versus new/delete in C and C++, covering initialization behavior, constructor and destructor calls, type safety, failure handling, and array variants.
- What typically lives in the stack, heap, data segment, BSS segment, and text segment? Where does a string literal like "12345" end up?
“The %s and %c with dereference cases were fine, but I fumbled on %d and %c with c directly.” The rest of the author's notes on Software Engineer interview at Arista, Technical Phone Screen round, covers how they worked through the question, what the panel pushed back on, and what they would do differently.
View Post