Ask HN: (again): how would you interview senior developer candidates?
Hello HN,
I'm the CTO of a just-launched start-up and looking to hire a senior/lead developer. Although I used to write code for a living, I haven't done so, or hired developers, in a while. So I'm looking for advice on which questions / interview practices are relevant from the candidate's perspective -e.g. not off-putting or off-topic- and from my perspective -i.e. that will give me useful insights on a candidate's skills. Specifically, I want to evaluate coding skills (both actual code practice and the ability to reason about complexity, algorithms, etc.); development practices (architecture design, unit testing, deployment automation, etc.); devops or sysadmin experience; and last but not least, the ability to get things done and deliver projects in an uncertain or shifting context.
Things that I'm considering asking, besides the usual discussion on the candidate's previous experience:
- discussing 2 or 3 "real-world" programming problems to see how the candidate would tackle them
- contribution to open-source projects
- code example (e.g. GitHub profile, or StackOverflow contributions)
Things that are out of the question:
- whiteboard programming and/or academic questions on BST or Dijkstra's algorithm
- pair programming (it will most probably be too early in the development phase to have any meaningful code to work on)
- paid work on an actual project (ditto + complex to organize given France's legislation)
What else should I be asking? What should I avoid? In your experience, what works and what doesn't?
Thanks for your insights.
Note: the job is in Paris, France in case anyone's interested :D
3 comments
[ 0.29 ms ] story [ 21.0 ms ] thread- How do you handle a young developer who is making mistakes ? Do you take time to help him ? A concrete example would to give him/her a bad piece of code and ask him/her to peer-review it.
- Are you ready to give some talks about whatever your are good/expert at ?
- What is your attitude toward optimization (I would expect something like : don't optimize until it is correct and needed, but don't write the original code without performances in mind).
- Check if the candidate is stubborn. A senior grumpy stubborn developer can be a pain to work with.
Bonus: what is the job ?
Regarding the job: we're a small team and I'm the only tech on board so far, so the job is kind of a one-man orchestra: some front-end development (building the website with a basic sales funnel), some back-end (integration with external modules, exposing our own APIs, some business logic), some automation/tooling (setting up CI/CD). The exact perimeter will depend on the complementarity with my own skill set. In terms of attitude: team player, problem-solving and getting things done.
To me, the things that have been ruled out are probably more informative than the one's under consideration for any candidate that really requires interviewing. I mean that if a person puts a opensource project or StackOverflow profile on their resume, those things will mostly speak for themselves and the conversation will mostly be pleasantries. Chatting about real world problems might also be an interesting passtime, but it will not measure how a person generates a cohesive bag of lines ending with semicolons into a problem solution.
The last of the ruled out options looks like a tell to me. Interviewing is hard work and what is easy and comfortable is in and what is difficult and uncomfortable is out. Evaluating programming skills is difficult. Evaluating programming skills is uncomfortable because a nice likable candidate might have to hear bad news from a interviewer who themselves wants to be liked.
Circling back, the best way for a small company to hire senior people is to hire people that don't need to be interviewed because current staff have worked with them for years.
Good luck.