November 13th, 2016
(written by lawrence krubner, however indented passages are often quotes). You can contact lawrence at: firstname.lastname@example.org
In regards to what works the best, I found that these 2 ideas work the best when combined.
PAID Sample project assignment (err on the side of paying fairly — say $100+/hour for estimated completion time — if the problem should require 2 hours to complete, offer $200)
Bring the candidate in and discuss the solution. Let the candidate talk about their design decisions, challenge them as you would any team member and let them provide their reasoning.
Paying candidates to work on a simple project and then discussing it with our team has almost single handedly eliminated any bad hiring decisions. Paying a candidate that gives you a terrible solution (or no solution) is FAR cheaper (both financially and emotionally) than hiring the wrong person, going through a 3 month performance improvement plan to try to make them the right person and eventually firing them.
I don’t care about getting paid. I don’t care if I am doing it at home or in the interviewer’s premises.
Don’t let me connect to internet. I’ll also leave my phone with you just to make sure I don’t have access to the internet. I don’t mind taking the time away from current employment to go through the process.
BUT PLEASE LEAVE ME ALONE THOUGH WHILE I AM AT IT. FOR GOD’S SAKE DON”T SIT NEXT TO ME AND TALK TO ME OR EXPECT ME TO TALK TO YOU WHILE I AM SOLVING THE PROBLEM !!!
Let’s discuss the solution or the non-solution AFTER I have spent some alone time with the problem. I don’t mind getting rejected AFTER I have made a serious attempt at it.
It is simply beyond me why people think it’s all right for a complete stranger to sit next to a programmer while he is trying to solve a problem under the significant cognitive load of a new environment, new people possibly a laptop/keyboard he has never used.