Conventional wisdom used to be that a successful engineering team comprised a mix of experienced and entry level staff. Balancing perspectives and team dynamics was part of a hiring manager’s job. In the past decade, the zeitgeist has changed dramatically. Almost nobody wants to hire junior engineers anymore. That’s unfortunate not only for the juniors, but for the industry as a whole.
The rationale for not hiring juniors is two-pronged: Firstly, a new engineer sucks up the time of senior staff for their first six months on the job, making their contributions net negative. And secondly, the junior is likely to leave as soon as they’re qualified to make more money elsewhere, so why bother investing in them? Let’s address both concerns in order.
Firstly, entry level engineers are not net negatives. If your company won’t hire juniors, you’re missing out. Newcomers to the field of Software Engineering—be they young, or simply changing careers later in life—bring not only perspective, but energy. They’re excited to get to work, even on tasks that senior staff find mundane. They ask questions that make the seniors actually think about what they’re doing, and why, rather than doing it by rote. Without juniors, experienced folks have a nasty tendency to perpetuate whatever they saw work ten years ago, regardless of whether it makes sense anymore; sometimes merely wasteful, and sometimes disastrous. Note that “entry level” means having little or no professional experience—not 2-4 years, as so many modern job descriptions imply.
Secondly, investing in your staff does not hurt your company. Giving junior engineers the opportunity to learn makes them want to stay, not leave. On a properly balanced team, newly minted engineers will stay past the first year because they value the mentorship of senior coworkers with whom they’ve built rapport. Moreover, seniors will stay partly because they like mentoring juniors. The latter point bears restating: Hiring junior engineers helps retain senior ones.
The blackballing of juniors is a tragedy of the commons. We’re killing our seed crop. If junior engineers can’t get professional experience, then soon there will be no more senior engineers to hire. Even if juniors tend to bail after a year, the corollary to losing yours is that you can hire somebody else’s. FAANGM companies know this, and still hire paid interns and new college graduates. There aren’t enough of those positions to train engineers for the whole industry, though; and anyway, the folks who get them tend to stay put. Even if you hire somebody away from such a position after their first couple of years, you may be surprised to find that they lack basic technical skills (like how to use popular version control and task management systems) because those companies run their own bespoke tech stacks. Hire your own juniors, and let them come up to speed in the context of your company’s particular needs, not somebody else’s.
a great reminder. i've had some crazy luck with hiring some younger folks (in their career) that have been well-worth the investment... but, it is rare.
... worth it enough to not stop trying.