{"id":24,"date":"2026-07-27T10:20:00","date_gmt":"2026-07-27T10:20:00","guid":{"rendered":"https:\/\/colorlibhub.com\/unapp-blog\/2026\/07\/27\/the-best-meal-i-had-this-year-cost-four-euros\/"},"modified":"2026-09-18T08:46:40","modified_gmt":"2026-09-18T08:46:40","slug":"the-best-hire-i-made-had-the-worst-interview","status":"publish","type":"post","link":"https:\/\/colorlibhub.com\/unapp-blog\/2026\/07\/27\/the-best-hire-i-made-had-the-worst-interview\/","title":{"rendered":"The best hire I made had the worst interview"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The best engineer I ever hired very nearly did not get the job. She froze at the whiteboard, apologised twice, and at one point asked if she could start again. Two of the three people on the panel scored her as a no.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I argued for her mostly on the strength of one answer. We had asked about a bug she was proud of fixing, and she spent ten quiet minutes explaining how she had found a race condition in a payments system by printing the logs from three services and reading them side by side with a highlighter. It was the most careful piece of thinking anyone described to us that year.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Six years later she runs a platform team, and I have spent a fair amount of time since wondering what the rest of that interview was measuring.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What we were testing<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The whiteboard question tested whether someone could solve an unfamiliar puzzle quickly, standing up, while strangers watched. That is a real skill. It is just not one the job used very often.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The job mostly needed someone who could stay with a confusing problem for a long time without guessing. Someone who wrote things down. Someone who would rather say &#8220;I do not know yet&#8221; than ship a fix they did not understand. None of that shows up well in forty-five minutes of performance.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It also, quietly, tested how comfortable someone was in a room full of people who looked like the panel. I did not think of it that way at the time. I do now.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What we changed<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">We did not abolish technical interviews. We changed what they looked like:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Candidates get the problem the day before. Nobody in the job solves problems cold, so we stopped asking them to.<\/li>\n\n\n<li>We walk through a real bug from our own system, with the real logs, and watch how they read them.<\/li>\n\n\n<li>Every panel asks about something the candidate built that went wrong, and what they did next.<\/li>\n\n\n<li>Anyone who scores a no writes down what evidence would have changed their mind.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">That last one did the most good. It turned a gut feeling into a claim somebody could argue with, and it exposed how often &#8220;not a fit&#8221; meant &#8220;did not remind me of me&#8221;.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What the day-before question changed<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I expected sending the problem in advance to make everyone look good and tell us nothing. The opposite happened. When the puzzle is not a surprise, the interesting differences move to what people did with the time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Some arrived with a working solution and no questions. Some arrived with a half-solution and a list of the three decisions they could not make without knowing more about our system, which is exactly what the first month of the job feels like. One candidate arrived having decided the problem as written was the wrong problem, and explained why, politely and correctly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">None of that is visible when someone is standing at a whiteboard with a marker drying out in their hand.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What we stopped asking<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">We dropped brainteasers, which measured whether someone had seen the trick before. We dropped &#8220;what is your greatest weakness&#8221;, which measures rehearsal. We dropped the question about where they want to be in five years, because every good answer to it is a guess and every bad answer is honest.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We kept one question that looks soft and is not: &#8220;tell me about a decision on your last team that you disagreed with, and what you did.&#8221; It gets at judgement, at how someone behaves when they lose an argument, and at whether they can describe a colleague&#8217;s reasoning fairly.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What it cost<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Interviews take longer to prepare, and we have probably hired fewer of the people who interview brilliantly. I am not sure that is a loss. Some of the smoothest interviews I have sat through were with people who turned out to be very good at interviews.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Real bugs from your own system also need maintaining. Ours went stale twice, once because we fixed the bug and once because the service it lived in was retired, and both times someone had to sit down and prepare a new one properly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We still get it wrong. Hiring is a decision made with too little information, and no process fixes that. What a better process does is make sure the information you do have is about the job rather than about the room.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What we tell candidates now<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Two small changes made more difference to how people performed than anything we did to the questions themselves.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We send the format in advance: who they will meet, how long each part is, what they will be asked to do, and the fact that they can use their own editor and look things up. Nobody has ever performed worse for knowing what was coming.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And we say, out loud at the start, that thinking in silence is fine and that we would rather watch someone be careful than fluent. It costs nothing to say and it visibly changes how the next forty minutes go, particularly for the people who assume an interview is a performance because every previous interview has been one.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The part I keep thinking about<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">She told me much later that she had nearly withdrawn halfway through, because she was certain it was going badly. It was going badly. She was, by the measure we had chosen that morning, performing poorly, and the measure was wrong.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It is uncomfortable to wonder how many good people we turned away over the years because the interview was measuring the wrong thing, very accurately. That is the argument for changing the process even when it is expensive: the cost of a bad interview is invisible, and it is paid entirely by someone else.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>She froze at the whiteboard and apologised twice. Six years later she runs a platform team. What that interview taught me about what interviews measure, and the four things we changed afterwards.<\/p>\n","protected":false},"author":117,"featured_media":51,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-24","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hiring"],"_links":{"self":[{"href":"https:\/\/colorlibhub.com\/unapp-blog\/wp-json\/wp\/v2\/posts\/24","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/colorlibhub.com\/unapp-blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/colorlibhub.com\/unapp-blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/colorlibhub.com\/unapp-blog\/wp-json\/wp\/v2\/users\/117"}],"replies":[{"embeddable":true,"href":"https:\/\/colorlibhub.com\/unapp-blog\/wp-json\/wp\/v2\/comments?post=24"}],"version-history":[{"count":2,"href":"https:\/\/colorlibhub.com\/unapp-blog\/wp-json\/wp\/v2\/posts\/24\/revisions"}],"predecessor-version":[{"id":65,"href":"https:\/\/colorlibhub.com\/unapp-blog\/wp-json\/wp\/v2\/posts\/24\/revisions\/65"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/colorlibhub.com\/unapp-blog\/wp-json\/wp\/v2\/media\/51"}],"wp:attachment":[{"href":"https:\/\/colorlibhub.com\/unapp-blog\/wp-json\/wp\/v2\/media?parent=24"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/colorlibhub.com\/unapp-blog\/wp-json\/wp\/v2\/categories?post=24"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/colorlibhub.com\/unapp-blog\/wp-json\/wp\/v2\/tags?post=24"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}