Just as previous entries on here, the interview process ran as follows:
1) Brief phone call (to see if I was still looking for employment, etc)
2) Questionnaire
3) Coding challenge
4) Another phone call (mostly the recruiter discussing details of the job)
5) Invitation to Chicago HQ to complete:
(a) Logic assessment
(b) STEM presentation
(c) Technical interview (Pair-programming)
(d) Non-technical interview (Discuss the values of the company, your values and how the two align)
My biggest advice is to be super well-versed in your contribution to the non-technical portion - for instance, don't make a passing remark about how we should aim to eliminate poverty unless you have some ideas on how to achieve it. They don't drill or interrogate you aggressively, but they do expect you to be able to (have and) communicate personal ideals and ideas.
The technical portion is very straight-forward. It consisted of very basic OOP questions. As for the pair-programming, my interviewers (of which there were two) were friendly and helpful with refactoring my submitted code. It was like a mini seminar on TDD.
Good luck!
(The interview process took a very long time for me - it ran on and off because I was still in school full-time)