Interview has two stages, a phone interview and an in-person interview. The phone interview was 90% technical questions about programming concepts (what does object oriented mean, what does an operating system do, what is a stack, etc).
I did pretty well at that, so I was invited for the in-person, which had 5 other people: two fairly new employees in the position I was applying for, the guy who interviewed me on the phone, and two others. We did the usual stuff, asking questions, talking about my past experience, etc, then they had me design a simple system on the whiteboard, describing the features it would need to have and the fairly high-level implementation details.
After that 4/5 people left, and I had to do an assessment (coding challenge type thing) in C, which went pretty poorly. I was using notepad to edit the code since I'm not that familiar with console editors like vim, but the main issue was that I needed to do one thing which I didn't know, nor had I ever done it before: converting a double into raw binary data. The person who was with me tried to help, but it didn't seem like she knew how to do that either, since the only method she suggested (using the shift '>>' operator) only works on integers. I also wasn't allowed to look up how to do this on the internet. Other than that one issue, the actual problem was pretty easy: I just had to take the given doubles, convert them into a very long binary string, and duplicate any substrings in it which were equal to some value (such as 0x5f), and output that.
Because I couldn't do the problem without being able to convert doubles to binary, the person with me just asked me a few questions about how I would solve the problem, I wrote a note in the code file, and I left. I later heard that the reason they declined a job offer was because I scored too low on the assessment.