This is a 3-year-old post by Joel Spolsky, but one worth reading and implementing because “interviewing is more of an art than a science”:
Here’s a typical plan for interviewing a programmer:
1. Introduction
2. Question about recent project candidate worked on
3. Impossible Question
4. C Function
5. Are you satisfied?
6. Design Question
7. The Challenge
8. Do you have any questions?
In a nutshell, hire people who are “Smart, and Gets Things Done.”