In Jan 2014, Riverbed interviewed me for a Software Engineer position in Platforms Group. They were looking for low level software dev experience (kernel dev, drivers and such but not all the way down: board bring up etc). I was interviewed by manager of the group and questions were fairly standard. Due to my interview nerves, I bungled it.
Verbal:
- How much do you know about linux kernel programming?
- Can you explain how an interrupt works?
- Difference between s/w interrupt and hardware interrupt?
- In a user space, if a timer expires, does it generate a hardware interrupt?
Programming Questions:
1. Write a program to determine endianness of a system.
A. Its quite standard program.
2. Given that malloc() and free() gives and frees memory on a 32-bit aligned boundary, write following routines:
void *my_malloc(size_t size);
void *my_free(void *my_ptr);