How we hire junior developers
At Toughbyte, we are building a tech recruitment platform used by our team members, as well as companies and developers from around the world. Since we started in 2015, our team has grown from two people to seventy and we now have more than ten developers. We tried different management and development models over the years and came to the conclusion that hiring & teaching junior developers is what works best for us. In this post, we’ll cover the pros & cons of such an approach and share our experience of setting up an onboarding and mentoring process for juniors.
Pros and cons of hiring juniors
Junior developers are motivated to grow more than others. In our experience, such people clearly understand and accept what awaits them. In the beginning, they have to work much harder than if they were “seasoned” developers. The flip side is the amount of time needed to onboard and help them. It takes about six months to get a new employee to the point where they are able to work with minimum outside help. That’s why we pay a lot of attention to onboarding, teaching, and interacting with the team.
Onboarding juniors
Onboarding helps new developers quickly join the workflow and adapt to the company culture. Our onboarding process looks like this: on the first working day, the new employee has all the necessary accounts set up and receives a document where we’ve detailed how we see their progress after one week, one month, and three months of work. An onboarding checklist helps the new developer navigate the company knowledge base, understand the technologies we’re using, our code base, and the most common mistakes to avoid.
Practice is the best teacher, so we try to get the new employee to write code from the very first day. They start with simple tasks, such as fixing issues on the frontend, adding tests, and working on the business logic. Such tasks help them get acquainted with the code and lower the risk of breaking something critical.
The onboarding guide is also useful for mentors. It describes the learning plan for the new developer, as well as how to better organize the learning process itself.
Team connection, mentor and team lead
Usually, team leads are the ones mentoring newcomers. Junior developers mostly interact with the team lead when they start. How, when, and why is specific to each developer and depends on their progress. In addition to syncing up with their mentor, the developer participates in other meetings, such as daily stand-ups, team calls, and development talks where we discuss the latest technologies.
Junior developers get feedback from their mentors on a daily basis. After three months, we get juniors involved in bigger tasks that take one to four weeks to complete. While working on such tasks, juniors may be supervised by the creator of the task. However, the team lead remains the main point of contact for juniors when they need help or advice.
Our mentors perform the following functions:
- Teaching: pair programming, identifying knowledge gaps, and helping juniors fill them by giving recommendations and practical tasks.
- Instructing: explaining company-wide and team-specific processes. Mentors can advise on what to look for & where and what to pay attention to.
- Evaluating: the team lead evaluates the developer’s progress and decides on promotions. We organize monthly one-on-one meetings where we discuss the results of the past month and further development plans.
Growing from junior to senior
At Toughbyte we have a transparent growth system: there are nine grades - three for junior, middle and senior levels. The algorithm for moving to the next grade is simple: each grade requires specific competencies and if the developer meets the requirements, they are promoted to the next grade. The system is convenient because the developer understands what the expectations are and what is needed in order to grow further.
When the developer starts with us, moving to the next grade happens pretty quickly. The first promotion may happen right after passing the trial period. There is no time limit, so the developer’s progress depends on their skills and motivation.
Qualities of a good mentor
It's impossible to be good at something you don’t like. That’s why becoming a team lead is a decision that has to be made voluntarily.
A team lead must have a good technical background as well as great soft skills. Having a middle-level grade or higher is required as well since the team lead is mentoring the whole team. He or she must be able to help the team members and do thorough code reviews. As for soft skills, one doesn’t have to be a communicative extrovert, but you do have to be good at explaining things and be willing to teach them to others. Being empathetic is also crucial for a good mentor.
Mentors might experience some difficulties in their work. For example, sometimes arguments and conflicts might happen within the team. Not everybody has conflict resolution skills, some people have to learn them. On the other hand, mentorship might be interesting to a person that is looking to learn new things. As they say, the best way to learn something is to teach it to others. This applies to mentorship as well.
Advice for junior developers
We know how hard it is to start a professional career as a developer. A few years ago, two of our team leads were junior developers themselves when they started working at Toughbyte. Good mentorship makes the first work experience easier. However, it still depends on the developer as to how quickly and efficiently they will learn and adapt.
Here is some advice for junior developers:
- Don’t be afraid to ask. Many beginners make the mistake of trying to do everything by themselves. It’s a laudable effort, but it can hinder both your own growth and your team’s work.
- Don’t hold back your opinion. Be yourself, share your ideas and take initiative. Your opinion matters.
- Believe in yourself. It’s always hard to start. Don’t think that “this isn’t working” or “this is not for me” at the slightest of missteps. Everybody makes mistakes. Don’t try to cover them up and don’t give up. Your team will always be there to help and support you.
Good luck with your future career! Being a professional developer is as rewarding and interesting as you imagine it to be.