3 ms·
This is very close to what our company does, and I think it's a great process. We like to give a two part problem - something relatively simple like an "early-D
by agentwiggles 4y ago
This is very close to what our company does, and I think it's a great process. We like to give a two part problem - something relatively simple like an "early-December" Advent of Code problem. We give the first portion as a take-home project, then do a pairing style interview, where we spend a little bit of time discussing the solution, and then pair on the second part.
We see how the candidate approaches problems from their initial solution, and then we get to see how they react to being asked to extend things. We get to talk to them about how easy their code is to change, how their tests helped support the changes. We get to see them work through a problem under slight pressure, and hear them communicate with a partner about the problem.
As an example of the level of problem we're looking at, here's an AoC problem we've used before: https://adventofcode.com/2021/day/2 https://adventofcode.com/2021/day/2.
A couple of notes:
* We keep the problem easy like the one above because we're not trying to see if a person is a genius or has memorized a lot of algorithms. We just want to get a basic pulse on their skill level. For a junior dev, this kind of problem is doable but might take a little while. For a senior, this should be basically trivial.
* When I mention that a candidate is under some pressure, I don't mean that we add any artificial pressure - that would be dickish. I just mean that interviews are naturally a bit of a high-pressure situation, so we get to see if they keep their cool, etc.
* The candidate drives, but we try to approach the problem as a real pairing situation, so the candidate should talk through ideas with the interviewers, the interviewers can and should _actually help_ solve the problem, etc.
* The "take-home" portion is designed with the intent of not taking up more than an hour or so of the candidate's time, and is really there just to give us a starting point to talk about. It also ensures that the candidate has a project set up and ready to go for the interview in the language of their choice, which eliminates a lot of churn from the beginning of the interview.
I helped design the process so I'm biased, but I think it's extremely effective.