Finding your first dev job is the worst — because everyone expects you to already have experience. But how to get it if no one will hire you without it? I know how frustrating this is from my personal career, but also because, over the years as I’ve discovered a passion for mentoring new engineers, their struggle with the “first job hunt” has been excruciating to watch. The whole thing is so confusing to me particularly because I’ve onboarded junior engineers to be productive in a matter of weeks several times, at several different companies.
I’ve worked with engineers with limited “real world” experience, and over the course of a few weeks found that they are fully capable of being productive members of an engineering team — even if they’re new to React and React Native.
Another dimension of this issue is that the industry is currently obsessed over “diversity” and hiring diverse candidates. The truth is, there are only so many folks who fit this mold who already have experience. Thus, the unwillingness to mentor new talent does not simply enforce conformity, but actively works against diversity.
Part of the reticence to train folks and conduct real onboarding, in my view, is that many of the (mostly) straight, white male engineering managers or senior engineers out there simply do not want to have to do this work. And the folks that hired them do not expect this of them and instead focus their energies on the “pipeline problem,” rather than becoming part of the solution.
In 2019 I gave a presentation called “Onboarding Junior Devs Without Slowing Down Production” at the Austin CTO Summit and the reception was great — people loved what I shared and gave me feedback that it was aspirational. One such straight white man asked me for coffee, ostensibly to “learn more,” but ended up telling me that he could never replicate my results because I “had the personality” for doing that kind of work.
That said, I’ve worked with more than a dozen new engineers who are all making great money working in various types of companies in the industry. As my grandfather used to say, sí se puede, si se quiere (you can do it, if you want to do it). I wanted to highlight some of the strategies that have worked for me to the end of helping folks grow quickly into an engineering team and hope that more companies will consider being part of the solution instead of decrying the problems.
Job Description + Interview
You want to make sure that your hiring process is designed to identify folks who are learners. You’re looking for people who enjoy learning, asking questions, bettering themselves, and collaborating with others. Be precise about including this in your job description and list of requirements, but make sure you do it in a way that is inclusive; don’t require a CS degree and ensure your language doesn’t allude to wanting male applicants (ninja, rockstar, etc). The same goes for the interview process, whiteboarding is not going to find you the most enthusiastic learners but asking questions about learning will.
Documentation + Templates
Ideally, you would have excellent documentation about how your applications work, connect to other applications, and what your standards are already. Barring that, it’s never too late to start!
One of the best ways to create a great onboarding experience for any engineer, especially new ones, is to provide access to great documentation. That includes creating templates for things like PRs, work tickets, help requests, and any other processes that may repeat themselves in your organization.
If you provide this kind of information to folks coming into your organization, they will not only understand how you do things, what the expectations are, but also what is entailed in your engineering culture.
One important way to include junior engineers on your team in a most productive way for everyone, is ensuring a range of difficulty and scope of tickets for your team in any sprint. I have found that starting folks off with “easier“ tasks, and scaling them up to more difficult ones, leads to incredible growth and results. In a matter of weeks you can have junior engineers contributing regularly and significantly to your code base. This may require a collaboration with your project management team, or folks outside of the engineering organization.
Create A Learning Culture
Create specific opportunities for people to ask questions, share knowledge, or present what they have learned to each other, this is an excellent way to go about creating a learning culture in your organization. You can even include expectations about learning and sharing information in your code of conduct or mission statement, but the best practice is to try to encourage knowledge sharing and collaboration in any way possible — during stand up, in every meeting, in code reviews, anywhere you think you can fit it in.