How do you identify a great software developer in an interview?
qhoxie: Try to give a (not too outlandish) problem that they cannot prepare for.  People memorize algorithms or can adapt their mathematical knowledge, but when given an obscure or abstract scenario, you can get a good idea of how their mind works.  Encourage them to take their time and think out loud so you can understand their process.