The interview process had three phases. First, a discussion with a technical recruiter that was just getting some details about my skills and experience. Second, a phone screen during which I had to show some level of knowledge on a variety of topics (about 6 or 7), including network protocols, POSIX functions, x86 assembly, among others. This only took about ten minutes. Last was an onsite interview. This was a very technical interview - not necessarily the most challenging, but they definitely want to see what you know. I was asked about network protocols again, in more depth though (i.e. describe what happens when you open a web page); the stack and how arguments are passed using various calling conventions; the Windows API;general C/C++ programming related questions; and about difficult experiences I've had to deal. Overall it took between two and three hours. Everyone I dealt with was very nice.