Applied online.
Received an email expressing interest 3 days later.
Received a phone interview after a week.
Phone Interview Questions:
How do you define Object-oriented programming?
What's the difference between C and C++?
What's the difference between TCP and UDP?
What is a mutex? (Have you done any parallel programming?)
I received an email to set up an on-site interview after one week from the phone interview.
In person Interview Questions:
swap an int (whiteboard)
reverse a linked list (whiteboard)
difference between shallow/deep copy
byte swap (perform it)
"What is a semaphore?"
Simple Compression Algorithm (whiteboard. "aaabbcccc" becomes "a3b2c4")
Check if string of parenthesis/brackets are well-formed. As in for every open paren/bracket, there is a close paren/bracket (whiteboard)
What is blackbox vs. whitebox testing?
Explain a use for Linux's "sed".
How can a static member data be used? (singletons, etc.)