Recruiter phone screen, technical phone interview, on-site technical interview, meeting with upper level manager. The whole process took a very long time, and I actually ended up finding, interviewing and accepting another job offer before the final interview stage. Most of the people were very pleasant and extremely intelligent - they ask difficult questions, but it was okay to admit not knowing!