The rest

Why I Wouldn’t Hire Donald Knuth

Topics
interview, programming

When discussing the hiring of software developers, there’s a tendency to put people on a linear scale, like “That person is a great programmer”. But that kind of thinking is obviously nonsense. I spend quite a bit of my time looking at and interviewing developers for jobs at Futurice, and there are specific things I’m looking for, things that are not applicable to all development jobs but are very applicable to us. I cannot just go googling “questions to ask a software engineer” and base an interview on the top hits.

Take Donald Knuth, for instance. Widely considered a great programmer. He is especially good at algorithms, having designed several famous ones. But we have little need of algorithm design capability and it doesn’t seem to correlate with the abilities we need, positively or negatively. As an interviewer, it would not give me any relevant information to have a candidate solve an algorithm design problem, let alone solve one during the interview.

Donald Knuth is a perfectionist. When his books weren’t typeset well, he spent 10 years making his own typesetting system. Perfectionism is not what I’m looking for. I’m looking for an engineering mindset, someone with the ability to evaluate different approaches, weigh their tradeoffs, and select the appropriate one based on the constraints of the situation. No client of ours is going to accept us spending 10 years to implement the perfect programming language to implement their service in.

Donald Knuth has used only one programming language for 30 years or so. What I look for is curiosity, a willingness to go beyond one’s current comfort zone to discover new and improved ways of doing things. Sticking with a non-evolving language screams the opposite to me. It’s not a problem not to be a master of several languages but I do expect following the trends in one’s primary language or languages and some awareness of what other sorts of languages are doing, with a bonus for understanding how to apply those techniques in the primary language.

Communication with Donald Knuth has a huge latency and is by letters. This style is not at all acceptable for us. Communication within the team is constant, communication with the client is frequent. Communicating even via Jira or a similar story and issue tracking system is too inefficient. We need people who at the early stage of their career can communicate their ideas among their fellow developers and, in more advanced stages, to the clients as well, putting their reasoning in terms understandable also to non-developers.

This all is why I wouldn’t hire Donald Knuth. But you might be a better fit. Why not send in an application?