Over the course of this two-part series, I want to explore when and how you should hire junior engineers. In part one, I explored when you want to hire junior candidates over senior ones. In this second part, let’s cover how to hire junior candidates, once you’re ready for them.
Studying for the test
Like in any interview, you should be looking for strengths, not weaknesses. The problem is: the strengths of a junior candidate are very different from those of a senior candidate. For this reason, hiring a junior candidate is one case where I think it’s appropriate to expect preparation.
A senior engineer provides value based on their ability to deliver technical solutions. That ability is based on their experience, and they draw on that experience on a daily basis. Why should they have to prepare for an interview if they’re not preparing for their day job?
But a junior engineer doesn’t have that experience to draw on. Once on the job, your team needs to provide new hires with support and mentorship, and getting to the point where that junior engineer is truly providing substantial value is far from immediate. So anything you test them on in the interview is, on some level, artificial. The interview truly is like a college exam.
Tailoring to their background
Candidates new to the industry come from many backgrounds, and it’s important to tailor the interview to what they have learned recently:
For new college grads (or soon to be college grads) with experience in a computer science program, you certainly expect them to know data structures and algorithms. In fact, academic subjects of this sort may be the only computer science knowledge they have. So it makes sense to ask them about these topics. Just make sure you account for the fact that not all CS programs teach at the same depth.
For bootcamp graduates, the situation is trickier. Bootcamps do usually cover basic data structures and algorithms, but more of the focus is on practical skills. Be flexible about the technologies candidates use, which is important when the candidate only knows one programming language and framework. A small project is probably the way to go here.
The most valuable thing you can do here is ask the candidate about their background before the interview. Then adjust the interview accordingly.
Rate of learning
No matter the scenario, one thing to look for is the ability to learn on the job. This means working with the candidate during the interview, possibly even giving away part of the solution.
I remember when interviewing for my first internship, I definitely didn’t know the optimal way to solve an algorithmic problem. But, the interviewer guided me through some examples until I gained some insight. Then, when coding the solution, I forgot the base case of my recursive algorithm. The interviewer mentioned that I forgot it, but accepted my solution because it was clear I had the right structure. It was my response to the feedback and the way I built up the solution that was more important.
Look for potential, not existing knowledge.
Hiring a junior candidate may be one of the few times when I’d agree an algorithmic question is the right choice. But even that, it’s only the right choice if the candidate has a strong academic background. Ultimately, it’s the philosophy of respect and fairness that has to drive how you evaluate junior candidates.