We’re well aware that not enough juniors are being hired in the tech industry. But this is only half the problem.
In fact, we're bad at hiring juniors and we're bad at keeping them.
I came to this conclusion after struggling as a junior in various positions at different companies. I thought I’d gotten over the hardest part of the journey: getting a job in tech without years of experience. But my battle as a junior developer was far from over. In almost every early role, I felt misguided and left without enough support. And unfortunately, my experience isn’t unique.
For engineering teams, hiring juniors is only half the battle. When we fail to prepare or be intentional about how we engage with juniors, we create a bad experience for our new starters. And we lose people in the process.
So, how can we fix this? Over the years, I’ve learned a lot about what works and what doesn’t when it comes to supporting early-career engineers. Here I’m sharing six guiding principles and actions you can take to help set your juniors up for success.
1. Encourage asking questions
Always encourage asking questions and be very clear that there are no silly questions. This is something that can’t be stated enough. Get into the habit of asking for questions at the end of meetings and conversations.
Practice asking questions yourself! And do so visibly so that your junior team members will see or hear. Seeing senior teammates or managers proudly ask questions (especially the ‘silly’ ones) normalizes it. This is the kind of healthy team dynamic you want.
2. The one-hour rule
In tech, we take pride in self-learners and expert Googlers who can solve any problem. But this isn’t always the most productive route, especially when you only have a set amount of hours you can dedicate to your work.
This is why the one-hour rule is so great. If a problem takes more than one hour to fix, that means it’s time to ask for help. I’ve solved so many problems with the help of coworkers in 15 minutes when, if I had done it alone, it would’ve taken me all day.
Encourage your juniors to follow this rule. They’ll learn to rely on others while also cutting out hours of frustration.
3. Don’t rush them
Without much experience, accomplishing tasks and solving problems can take more time. For juniors to do their best work, it’s important to be patient. Don’t rush them or assign them extremely urgent tasks. Offer help when appropriate but always be patient!!
4. Emphasize that their perspective and feedback is important
Juniors bring a fresh, new perspective to the table which is extremely valuable. Use this to your advantage. During team meetings, ask them for their thoughts and feedback. Invite them to important meetings. Ask for their input when making decisions. All of this shows them that they are important, valued members of the team.
5. Have regular 1:1s
Be sure to have regular 1:1s with your junior team members. It might be a good idea to have them more than once a week, especially when they first join your team. I found this incredibly helpful when I was starting out. Of course, the number of sessions will depend on your availability and their preference.
In between 1:1s, check in with your junior teammates on Slack every now and then. This is great to do even if you aren’t their direct manager. Sending check-in messages (especially when they get ‘too’ quiet) can be a lifesaver.
As mentioned, the frequency of 1:1s and check-in messages will greatly depend on preference. It’s important to ask what their feedback and communication style is to make sure you don’t become an annoyance! I prefer lots of communication but some people might think that’s overbearing.
6. Pairing program
Pair programming sessions can be extremely valuable. They’re an awesome opportunity to help juniors solve problems they may be struggling with. Pair programming isn’t only reserved for solving problems or getting unstuck. You can also use pairing sessions to teach them how to use certain software tools or coding languages.
Pair programming is mutually beneficial. It can help more experienced programmers to simplify their code and thoroughly explain what’s happening. Junior developers can do the same! Both participants can teach each other new things that will ultimately create better code.
All in all...
It’s super important to lead with patience and kindness. Leading juniors to success is a team effort, and the above tips can be implemented by anyone working with them. For me personally, being on a team that embraced these principles saved my career.
By being intentional about how we collaborate and communicate with juniors, we can avoid pushing them away. Remember, helping to build a successful new generation of engineers benefits everyone: our juniors, our teams, our organizations, and our industry at large.