30 minute phone screen about programming experience and company, followed by coding challenge via email.
Completed the coding challenge in two days (not terribly difficult) with all stated requirements met, but my recruiter got back to me and asked me to halve the runtime for large inputs. I altered my algorithm to use DP, resubmitted, and after two weeks (this was over Christmas break) I got asked to come in for onsite interviews.
Onsite interviews consisted of 15 minutes with recruiter, 45 minute technical interview with a developer writing pseudocode on a legal pad (explain as you go!), one hour lunch in the dining area with a senior developer (essentially a behavioral interview - past experience, etc), then back upstairs again for 90 minute technical interview on whiteboard/laptop.
For the 90 minute, start on whiteboard, sketch out and explain solution in pseudocode, then write code on laptop in the IDE and language of your choice (hooked up to a big screen so interviewer isn't looking over your shoulder). Everyone strongly emphasized the importance of having a fully functional correct solution written on the computer in code, and preferably optimized, by then end of the 90 minutes.