I'm hiring a senior developer right now. Our first interview has a 4-question screen, where I ask them to implement a simple function, implement a recursive function, write a simple SQL select (join across two tables), and create a simple object model (how would you represent a car as an object).
~70% of the "senior developer" applicants fail
We're extremely happy with our process--this is only step 1--and it's been amazing at yielding a great set of candidates for each hire, but two weeks of administering the tech screen to applicants leaves me a bit depressed. (sigh)
For example I consider myself a reasonable programmer, I can certainly do any project put in front of me. But I failed a YouTube phone interview because they asked me to "say" a function for finding the longest common subsequence of a set of strings.
I learned the following issues completely stop me from being able to program:
1. Someone waiting on an immediate answer.
2. Someone watching/listening to my though process.
3. Not being able to experiment with the code on a computer.
That didn't cut it for them because apparently at YouTube a lot of your programming is done over the phone (sarcasm).
I guess my point is, try to think of the exact tasks this hire would be doing, and ask them to do that. Will they really be writing recursive functions often? Also if possible give them a take home project, so they can work in a more natural environment.