Why I love hiring junior engineers

When it comes to hiring engineers, it seems to me that most companies subscribe to the “conventional wisdom” of hiring experienced (a.k.a senior) engineers. They want people that “have been there”, “done that” and who can “hit the ground running”.

While there is nothing wrong with hiring senior engineers, the fact remains that there are more job openings than there are senior engineers to fill them. This scarcity leads companies to “cannibalize” on each other’s resources while overlooking a perfectly legitimate pool of high quality resources.

In the past couple of years I was fortunate to work with some really bright “junior” engineers and I decided to sit down and summarize that experience and why I believe that hiring up-and-coming engineers is not only a viable alternative but in fact an advantage.

Experience is overrated

While having extensive experience using the language of choice in your company can be helpful, it represents a fraction of the knowledge required by the engineer to perform their job duties. Any engineer you hire is going to have to spend a fair bit of time understanding your business particularities. No two businesses are the same. Not even within the same industry.

Remember those 12 legacy systems you have that don’t really talk well to each other? Yea, so they’re gonna have to understand how they work. Remember that huge monolith code base that is severely lacking in documentation? Right. So they’re gonna have to spend a fair bit of time wrapping their heads around that one. That’s where the real learning curve is!

What you want is somebody that has problem-solving skills. Someone who is a quick learner. Someone that can get the ball rolling without you having to sit there and hold their hand. Not someone that have some meaningless number of years writing Java code on their resume.

Motivation is underrated

Just like toxic attitude is contagious, the opposite is also true. Junior engineers are typically a very enthusiastic and motivated bunch. They have just discovered the beauty in what many of us take for granted: having the ability to convert your ideas and dreams into real-world, living, breathing computer programs.

This breath of fresh air has an uplifting effect on the moral of the rest of your team and promotes an atmosphere of help where your more senior engineers are suddenly taking on more responsibility by mentoring the more junior engineers. (Assuming your team is not solely composed of egomaniacal a-holes).

Likewise, motivated people will compensate for what they may lack in knowledge with sheer determination in order to achieve results. I’ll hire that kind of person over any senior engineer you put in front of me with indifferent attitude any day.

They are not as “clueless” as you think

In the past year I trained two junior engineers with almost no experience writing professional software. In both cases, I was able to ramp them up within days to start contributing meaningful, production code to our core platform.

My approach was simple but effective: treat them as professional adults, give them just enough to get going on the task at hand and check up on them every now and then to see if they need any help. That’s it.

The “overhead” in training them (which added up to maybe a couple of hours per week) paid itself many times over as these fledgling engineers became more and more productive and were able to tackle bigger and bigger tasks.

This is not an isolated case. In another team within the same company I witnessed similar results: within 3 months of hiring 2 new junior engineers to their team, they have doubled if not tripled their output.

Reciprocity

Decent people feel the urge to reciprocate when treated kindly. This translates to loyalty to your company, evangelizing your business and company culture, referring colleagues to work for you and generally having a fan on your side.

Bottom line

If your company has policies that forbid hiring junior engineers, it may be time to revisit these policies. Be as picky as you like in your hiring process but don’t let past experience be the main drive behind your hiring decisions. Look for bright, promising candidates who can compensate with their attitude for what they lack in experience.

5 thoughts on “Why I love hiring junior engineers”

  1. I’ve found that the same thing holds true on the system administration / devops side of things. There’s a few additional aspects too that I find are beneficial:

    Hiring new guys who aren’t up to speed on your lingo, on how all the systems talk to each other, or even how the application even works at all ends up requiring that you get your documentation up to snuff. I’ve found that more fresh blood you bring in, the more it makes it vital to have all of the caveats documented, the systems illustrated with decent diagrams, and the whole thing consumable by someone who has no idea how any of it works.

    The other benefit I’ve seen is in mentoring someone who’s new to it all. Sometimes, after you’ve been spending years troubleshooting high-level scenarios and problems, you lose site of the low level on how things talk to each other, how basic systems communicate and inter-operate, the guts of protocols and healthchecks and all the other things you take for granted over time. When you find yourself with a junior engineer trying to get them up to speed, I’ve found that it has an immense capacity to solidify and shore up your OWN basics – i.e. networking basics, Linux fundamentals, best practices for housekeeping, etc.

    Definitely agree with you – it’s massively beneficial to have junior engineers around, even if it seems like a “burden” to the higher-ups.

    1. Great points. It’s one thing writing documentation for some nebulous user you never met and you’re not sure you’ll ever meet vs. documentation for someone that actually needs them to survive.

  2. Great article and I agree with your sentiments. It’s also easier to encourage new, good habits in the younger set versus breaking long-term bad habits of “I’ve been doing it like this for ten years” in the older group.

    Surprisingly, new college grads are better at solving my company’s very basic interview questions too. Ask them to do something simple like iterate through an array and they do it no problem. Some even discuss different ways to do it. The seniors we’ve interviewed either took forever, blew it off (“I’m above this!” etc), or over-analyzed it to death. We even tell them that it’s not a trick question and they consistently fail to answer a freshman 101 question.

    1. Yea, that definitely strikes a chord with me.

      Juniors have the luxury of being vigilant and not too cocky. They know they still have a lot to learn, which is a great frame of mind to be in.

      On the other side of the spectrum you have the one-trick-pony-“senior”-engineer who doesn’t realize just how much they don’t actually know, until they show up to one of these interviews and fail the most basic CS 101.

      Not all seniors are bad and not all juniors are great. I’m just looking for the right attitude. And I find it more commonly amongst the more junior engineers.

  3. Arik, please feel free to hire me! I’m the very Junior/Entry-Level person you describe. From a business perspective, it’s understandable that to minimize risk one might only hire experienced engineers.

    Unfortunately, when a majority of small to medium size companies employ this strategy, it makes it makes it very convenient for giga-corps with larger budgets to scoop up the best young talent which further widens the competition gap.

    I’m willing to put in the work to get “up to speed” on my own time, much like the Junior engineers you described. I wish more companies looked at enthusiasm and coachability as another metric for hiring, not just pure experience.

    That said, I’m still applying for jobs I’m “underqualified” for, and the more I learn on the side, the more my asking price goes up.

Leave a Reply

Your email address will not be published. Required fields are marked *