Finding great employees is always an arduous, time consuming, and risky endeavor. But when it comes to hiring people with little or no experience - the complexity and hazard of the challenge may be multiplied. And if we add to this the equation the time needed for onboarding and mentorship required for any junior, the wrong choice of a person can result in a waste of money, time, or even worse - opportunity.
Below I will share some of Binary Studio’s best practices regarding how we spot outstanding junior talent and make sure they are capable of performing in our environment and up to the expectations we set.
In our experience, the puzzle of a successful hire is solved by answering three questions:
Can the junior developer do the job?
Unlike entry level candidates, junior developers know the fundamentals (or are supposed to know) of software development. So the task here is to actually identify what the junior already knows and whether that will be sufficient for tasks of your project’s complexity.
At Binary Studio, before inviting junior candidates for an interview, we first ask them to complete a test task (e.g. write a simple application from scratch), which helps us save lots of time by filtering out people who a) are not enthusiastic/interested/motivated enough to do the task and therefore get a job here, and b) whose technical expertise does not meet our expectations.
A junior might not have even developed a small application from scratch before, and though the task may be difficult, the candidates show their ability to learn quickly and independently, which is a crucial skill for the juniors.
Test Task Tip: If you decide to offer a test task (which we highly recommend), choose a simple application; be specific regarding your expectations (define three or four obligatory features and name the technologies you’d like to be used). Ideally, the test task should not take a candidate more than twelve to fifteen hours to complete.
Also, it’s a good practice of ours to actually name the criteria we are going to evaluate in the test task. For JS developers they could look like this:
|Frontend Architecture||30||Decoupling and modularity, code style|
|Project Infrastructure||10||Module and build systems configuration, folder structure|
|Backend Infrastructure||15||Decoupling and modularity, code style|
|Data Structures||10||Effectiveness and Reliability|
|Tests||15||Completeness and Approach|
|UI / UX||10||Layout, components, color and positioning|
|Responsiveness||10||Display adaption for desktop, phone and tablet|
A scoreboard like this will help you both define your criteria for the junior developer and have a clear picture of the candidate’s skills after the assessment.
There is another benefit of a test task. I believe that after candidates perform the test task some sort of commitment bias comes into force, which makes them be a little bit more attached to the company and a little bit more serious about their application for it.
Within the last couple of years, we’ve had two hires who didn’t show up for their first day. Both happened to not do the test task before they received the job offers (and both were outbound hires rather than inbound, meaning that we contacted them to offer the job, as opposed to them applying for it first). Even though they were not necessarily software developers, this greatly reinforced our strategy of using test tasks before hiring junior candidates.
Binary Studio Stats: to hire one great junior, out of thirty-ish applicants we check around ten to fifteen test tasks and invite four to six candidates who coped well with the task for an interview. The whole recruitment process may take six to nine weeks.
Will this developer do the job?
Another question is much deeper, literally. It’s whether the candidate is motivated enough to work hard, learn and accept feedback.
The Iceberg Model of Competencies:
I personally believe that past results are very often a good enough indicator of future performance, which is why during the interviews we dwell a lot on the candidate’s achievements in university, their extracurricular activities and what portion of their free time is devoted to self development (what tech books they’ve read, what courses they’ve passed, and which ones they’d like to take in the future).
We also talk about their aspirations and ambitions as well as ask situational / behavioral questions. For example, we ask them if they had a couple of job offers, what would be the 3 criteria they would base their decision on? We ask them to name them in order of importance. We may also ask the candidate to describe their perfect job, company, and work environment. We want to know which factors are the most important to them.
Different studies mention different time frames within which an interviewer forms an impression of a candidate which will influence a hiring decision, the range varies from 5 seconds to 15 minutes. With juniors it’s very important to give it more time and not to form a decision too fast, because the task is to evaluate potential, and to do that you need to give the opportunity to the developer to break through subjective filters and demonstrate why they’d be a good candidate. At Binary Studio, we divide interviews into two parts: one with an HR Manager, and one with a Senior Developer or a Tech Lead. Each part lasts not less than forty minutes, which in our opinion, is optimal to get a pretty good idea if the candidate fits.
Is he or she a good culture match?
Culture fit is just as important to screen for during the interview as skills fit. To ensure a great hire, determine which values you want to see in your future teammate before you begin interviewing. Then, think of the best culture fit interview questions to properly evaluate each candidate.
Over time at Binary Studio we’ve developed a portrait of an ideal candidate which guides and helps us make hiring decisions. While being open for diversity of characters, skills and ideas, our portrait serves us as a minimum viable set of skills, so to say.
Portrait of a Binary Studio Junior Developer:
The main goal of the HR manager interview at Binary Studio is to get the understanding of to what extent the candidate fits the portrait. To do that, we ask a lot of situational questions (e.g. Tell me about a time when you took responsibility without being asked / coped with a big challenge / received an unfair negative feedback, etc.) as well as simple general questions about hobbies, last read book, travels, university experience, etc.
In identifying great talents, every company’s journey will be different, depending on its own culture and priorities. And since hiring is more an art than a science, even with a very careful and thorough recruitment process, you will still have successes and failures, but as long as you learn from the latter, you can be assured that you’re on the right path.