How not to hire a software engineer
Here&#x27;s an idea for how to actually do a technical test (if you do want to do one).<p>1. You bring the candidate in to your office. You have their future desk already available with computer and development environment already functional. Pick a somewhat standard environment configuration.<p>2. Have an exercise already prepared. Best option is not a &quot;build this from scratch&quot; but have something that already works and needs some additional feature. Something small that could be done in, at most, an hour. Another option is two or three smaller tasks that together would take as long.<p>3. You give the candidate <i>incomplete information</i>. You describe the task clearly and in a mostly complete way, but leave out a number of details.<p>4. Very clearly explain these things. One: You won&#x27;t be on them; this is not pair programming and they should feel at ease and free to do however they want. But you <i>will</i> be sitting in the next desk and you will be doing something unimportant so they can -and should- ask you anything and all they want. They can also use S.O. or whatever search service they want but you&#x27;d prefer that they asked you first. Two: You won&#x27;t be looking at their code unless they want to show you. Three: they have <i>around</i> one hour, but time doesn&#x27;t matter that much. If giving out more than a single task, indicate that they won&#x27;t be judged by how many they manage to finish.<p>5. During that time, you focus on the questions they ask you. What they ask, how they ask them, which problems they face, what things they do or don&#x27;t understand. This <i>is</i> the key. This is what will tell you about how they think, what things they know and which ones they don&#x27;t. Keep an eye on them, if they seem too quiet you can interrupt them with simple &quot;how&#x27;s it going?&quot; or &quot;something wrong?&quot;, but don&#x27;t push it too much so that you don&#x27;t stress them. You may even suggest a 5 minute break for a coffee&#x2F;water half-way through if you feel they might need it.<p>6. The whole idea is to get them to do some task but more importantly to get them to <i>talk</i> about it. When they are done, or when enough time has gone by, <i>don&#x27;t</i> go over their code. Instead, ask them how it went, what they managed to do, if they got stuck. If they got it running, they can run it. If they want, they can show you the code or part of it. but you don&#x27;t need to focus on that. Focus on their talk.<p>7. Finally, do offer them the <i>option</i> of showing the code. But then, get them to show it and explain it. Don&#x27;t just go over it yourself.<p>8. The task(s) should be adequate and reasonable for the role, of course. But try to lean on the easier side more than on the harder one. And remember: do leave <i>some</i> information out. The task should be clearly understood but not finely detailed so that they will need to ask and maybe even make some decisions. (You can make them have to decide something by giving them more than one option as answer to some question.)