Photo by Glenn Carstens-Peters on Unsplash
How We Redefined Developer Hiring Process for Better Results
In December 2022 I joined Neurony Solutions , a 20 years old development agency in Bucharest, as their CTO and one of my first tasks was to improve our hiring process.
I'm familiar with the company and the team, as this wasn't our first time meeting or working together. So, one of the first steps we took was to define the ideal candidate: someone with an entrepreneurial spirit, easy to collaborate with, having experience as a contractor or in an agency, and open to work with new technologies. These were just some of the qualities we looked for in the profile.
I'm not usually a fan of take-home assessments or live coding sessions, but since we mainly use PHP + Laravel and I haven't worked with PHP or object-oriented programming (OOP) in over ten years, I couldn't just trust my own judgment to assess a candidate's skills in a short 30-60 minute chat. To help with this, I put together a hiring team to assist in the process, which includes code review and a technical interview.
Our initial hiring process was as follows:
Phone screening (a 10-15 minute call with an HR person for a brief introduction and to get to know each other)
A 30-minute video call with me to discuss previous work experience, expectations, and get to know each other better
A take-home assessment
A 1-hour interview with me, two Team Leads, and the Head of Project Management
A 1-hour interview with the CEO to determine cultural fit
Offer
A few months into the process, we introduced a competency matrix (also known as a skill matrix) into our organization. I decided to incorporate it into the 30-minute chat with candidates. The feedback was overwhelmingly positive; candidates found the matrix easy to navigate. It helped establish a "baseline" for their skills, and they often discovered they were either more or less skilled than they initially thought in certain areas.
Initially, I thought it would be best to filter candidates before giving them the take-home assessment, and this approach was successful until it wasn't, mainly for two reasons:
I became a bottleneck in the hiring process because there were so many candidates, and I couldn't interview them all in a timely manner.
Some candidates performed well during the 30-minute chat with me but then struggled with the take-home assessment
What didn't worked and current process
Changes
I stepped back from the "screening" process and evaluating the competency matrix. This responsibility has shifted to HR.
I also took the Head of PM off the calls, as I can assess cultural and work fit.
Current process
Screening (30-45 minutes) video call with HR to get to know each other and evaluate the competencies matrix. For the matrix evaluation, the person responsible was trained with me on a few calls, but we depend on the candidate's honesty during their review of the matrix.
Take-home assessment (~6 hours for a mid-level developer) - We've prepared a GitHub repository for candidates, featuring a basic Laravel + VueJS application. It comes with a detailed README.md file outlining all the requirements and tasks they need to complete. We don't set a specific deadline for candidates to return their code; they decide when to do so. However, if a candidate fails to submit their repository link by the agreed deadline without notifying us of any delays, they will be immediately rejected.
Code review - This step is carried out internally without the candidate's involvement. The hiring team and I have identified several key aspects that must be checked during our code reviews, based on the candidate's experience. These aspects are the first things we examine. If these criteria are met, we proceed with a thorough code review. At the end of the review process, each reviewer shares their observations (pros and cons) and their verdict (whether the candidate is suitable for the next round or not). I quickly review the code, read the feedback, and decide on the next steps.
Feedback (via email) - At first, we only provided feedback on the code review to candidates who were not selected. However, after receiving negative responses from a few candidates, we decided it would be better to also give feedback to those moving on to the next phase.
Technical interview (45-60min) - In this stage, the candidate meets the code review team to discuss the technical aspects of the test. It's a friendly conversation, and my role is to observe and support the candidate if necessary. Some candidates struggle in interviews due to nerves or feeling overwhelmed by multiple questions. My job is to identify these situations and provide assistance.
Cultural Fit (45-60min) - This is an interview with the CEO to get to know each other, discuss previous work, and talk about expectations.
Make an Offer
Is this methodology perfect? Absolutely not, and we're in a constant state of refinement and improvement. It's a gradual and meticulous process, but the outcomes have been exceptionally rewarding for us. By adhering to this carefully structured approach, we've successfully onboarded six remarkable developers, each at varying levels of expertise, in 2023. This achievement comes after conducting approximately 100 code reviews, underscoring not just the selectiveness of our hiring process, but also its effectiveness in identifying truly outstanding talent.