The first phone interview was a simple screening and gave me a chance to establish some expectations regarding the job and compensation.
The second phone interview was with the would-be manager. He is very knowledgeable and asked decent questions that allowed me to demonstrate my knowledge of software programming.
The final interview was on-site with the manager and another developer. They showed me to a room, gave me a set of programming objectives, and sat me down in front of a laptop. This is probably the best and most effective way to demonstrate me knowledge of programming. I was comfortable the entire time and really enjoyed the task they gave me. Roughly after half an hour they came back in and put my code up on a projector where we then proceeded to discuss what i had concocted. We discussed my design pattern and the finer details like initialization list, constants, threads and memory management.
Overall it was a very positive process and the team there must be a talented bunch. The technical recruiter is also very responsive and made the whole thing run smoothly.