Hiring trainees/junior engineers can be a great way of growing your team for different reasons. To start, it's a cost-effective way of boosting your team. It can also be faster, as usually it takes much less time to hire than senior engineers. They can also help the team be more productive by offloading more senior engineers from more straightforward tasks.
I recently calibrated with one of the teams on what we want to look for in a junior or trainee. As these candidates do not have experience or skills, how do we choose them? We need to assess their potential. In other words, we want to know if the candidate can quickly learn the skills required for the position.
How do we look for the potential of a fast-learning person? We essentially narrowed it down to these two things:
- Curiosity. The candidate needs to learn many things as soon as they join the company; they must be willing to learn.
- Foundational Knowledge: Yes, your trainees or junior candidates are going to be supported and mentored by more experienced engineers, but to be able to learn the ropes of the job quickly, they need to bring some foundational knowledge. Software Engineering theory, such as algorithms, object-oriented design, patterns, operative systems, and whatever might be relevant to what your team does.
These are not the only attributes you'll look for in these candidates; you'll screen for other characteristics related to what's valuable in your organization's culture, such as collaboration skills, autonomy, perseverance, or grit.