This was the most efficient interview process I've ever seen.
The HR phone screen was a standard 45 minute conversation with the recruiter. They made the decision to move forward within just a few hours.
The technical phone screen was with the Senior Engineer, hiring Manager and Manager's boss. Each had their own technical questions - the Senior engineer asked challenging technical questions about the Java language, the manager asked about schedules, project decisions, etc, and the Manager's boss asked about interpersonal skills and experiences. It was gruelling and I thought I had failed. They made the decision to move forward within 1 hour.
The on-site interview was most impressive: The hiring manager brought his entire team into a conference room and asked "Tell us about yourself". That allowed everyone to hear about me and we didn't need to go over my experience 6 times. Then all except 2 engineers left and they asked hard Java questions for a while, and then 2 others relieved them and asked more hard technical questions. Then the hiring manager came back and asked if I had any questions for him and then it was all over. Only 2 hours and they had a pretty good sense of what I could do. The downside was that I didn't get as much of a chance to learn about them as I would have liked. The best part? They made their decision and contacted me with an offer within two hours.