Through on-campus recruiting, it was basically a two-step process. At a recruiting event, they ask you two questions, one programming-based and one logic-based. If you answered both right you got an interview.
The interview itself was pretty straightforward. I was only asked one somewhat advanced technical question, and most other questions were more logic-puzzles / brain teasers.