How to hire a programmer, a.k.a. tech recruitment explained
Today’s post is not a recipe at all. Maybe a little. More of viewpoint than a recipe. Here’s what I think the tech recruitment should look like. It won’t be cheap. And yes, I have conducted a lot of interviews in my life. Start by describing the position. Who are you looking for, what would they do for you, how would they bring money to your company. Use words, not techie talk. I found most of the job descriptions online do not match the real expectations of the employer. You just want a good programmer, a person who thinks about what they does. It really doesn’t matter if they know Haskell and you write in Erlang. I doesn’t matter if they think in asm when you’re looking for Forth. I doesn’t matter if they are Linux nerds and you’re Windows-only, if they know how a computer works. As long as they think about what they do and know what’s that for and agree with your goals, that’s perfectly fine. If you translate your desire for a good programmer into a bulletpoint list of tech words you dehumanize it. Don’t look for skillsets, look for people I say. How to check whether someone is a good programmer then ? How to score people against such a vague job description ? You don’t score people I say, you just sort the set of people. I start by a rather loose conversation. Tell me about the point in life you’re in, tell me something about what fascinates you in the programming and finally what’s your motivation for changing the job and why do you want to work with us ? Somewhere in the middle I ask about the projects, what technologies you do like, what not, why not. Do you feel comfortable teaching others ? Then the talk gets momentum. We do focus on computers finally, why should it slow down, really ? If someone is fascinated by The Machines you should already noticed that, to be honest. Same with boring people or annoying people. If you do not want to work with them then do not hire them. Even if they’re brilliant. How does the computer work then ? How does this happen that I have this text file full of strange writings and suddenly they make the computer do stuff ? Why it’s not a good idea to get the modern pc to fly a space shuttle ? What’s a stack and what’s a heap ? Is the stack memory different from the heap memory ? Why so. And the why. The most important question for me is the mighty why. Not only should they understand how something works, but more importantly why it works like that. I enjoy working with people who are microwave-curious than the hex-feared ones. How does the microwave oven heat things ? Does the DEADBEEF scare your ? Maybe it needs some heat treatment then. Talk with people, make notes. What annoys you, what impresses you. Do the exercises with them. Ask them how would they solve a simple but a reallife problem. Design the solution with them. The more lifelike the work scenario the better. Do the things you’d normally do with your work colleague. And order the set of candidates. Work as the simple max function. Take the first one and the second one,. Decide which one seems better suited for you. Then take the next one and compare her to the current max. And please hire people only when you’re ready to hire them. UPDATE. After writing this post I've stumbled on this 37signal's art . Worth reading.