A CTO’s case against all the reasons for not hiring junior developers

Jessica Mitsch
Momentum
Published in
5 min readSep 21, 2018

Our friend, advisor, and community leader, Wade Minter, took the time to put pen to paper and express his views on the value of hiring junior developers. In this post, he highlights the most common reasons companies have for not looking at junior software developers and why they should reconsider.

-Jessica Mitsch, Co-founder & CEO of Momentum

Wade Minter, CTO at Custom Communications

As a CTO and VP of Engineering for several companies over the past decade, I have the opportunity to take a look at the tech industry from the perspective of someone whose primary responsibility is to build and grow great engineering teams. I also get to talk to peers in the industry, and share the struggles of growing those teams in a developer’s market. In a large number of those conversations, I notice two common themes emerge:

“It’s so hard to hire software developers these days — I have way more open jobs than there are people to hire.”

And, “I don’t hire junior developers — I only hire senior developers.”

As someone who has had significant success building teams that include new developers, especially mid-career code school graduates, this has always baffled me. There’s a place in nearly every engineering organization for new developers, and code school graduates often have an extremely valuable perspective on software and its role in products based on their pre-development life.

Furthermore, senior developers don’t just magically appear out of thin air — every software developer started as a beginner, learned and grew, and gained experience. If there are few opportunities for new developers, then there will eventually be no senior developers. The industry is hurting its future out of short-sightedness in the present.

Those concerns notwithstanding, I do hear several recurring themes as to why my peers are reluctant to hire junior developers. I’d like to get them out into the open, and briefly address why I have found them to be incorrect.

1) “We’re Too Small To Take On A Junior Developer”

In this argument, a team/company is still in its early stages, everyone has to be shipping at a high level, and there’s no capacity to onboard someone early in their career. I think this is true, to a point, but that point is much smaller than my peers think it is.

In general, if your team is 4-ish developers or more, you likely have the capacity to onboard and get use out of a junior developer. In any software application, there’s a combination of innovative new work, coupled with the basic blocking-and-tackling of keeping the system online, tweaking features, fixing bugs, etc. Why would you burn the hours of your high-paid senior developers on something below their skill level that they will resent when instead you could give it to someone for whom that work is a great learning experience?

2) “Our Software Is Too Complex For A Junior Developer To Understand”

While it’s true that there are areas of software development where truly novel, groundbreaking work is going on, I’m willing to bet that your products probably don’t fall into that category. Bless your hearts, I’m sure your product is really interesting, but at least 75% of the software being built today can be boiled down to “Take something out of a database, do something with it, stick it back in the database.”

I’m sure that your investor pitch deck is spectacular, but take a step back from your press releases and ask yourself: “Is my work really too complex for a new developer to understand, or am I just buying my own press releases?” I can nearly guarantee that there are aspects of your software stack that a new developer could understand and contribute to.

3) “We Don’t Have Time To Babysit A Junior Developer”

Well, it’s good of you to admit that your team dynamic is all kinds of dysfunctional, but that’s kind of terrifying. Companies that I see using this reasoning tend to hire nearly exclusively at the senior level. And guess what: Onboarding any new developer into your code takes time, no matter what their level. Hell is other people’s code, whether it’s your first project or 21st.

If you don’t think you can onboard a junior developer into your code, it should be a giant red flag that your culture needs a check. Junior developers tend to come in with clear eyes on a project, want to listen and learn, and are willing to pair and grow. If you don’t have people on your team that can assist with that growth, you may have serious problems coming down the line.

4) “They’re Not In It For The Right Reasons”

This complaint is generally lobbed at code school graduates, more so than new developers from more traditional backgrounds. It can usually be translated as “These people just switched careers to make more money, they’re not doing it for the unabashed love of computing the way that I and my fellow Computer Science graduates are!”

It’s weird, though — In a decade of negotiating salaries and raises with developers of all different experience levels, including those senior developers from traditional backgrounds, I’ve never had one tell me “Wade, I really appreciate this, I’m glad you find my work valuable, but I’m going to need you to cut $30,000 off of my offer in order to accept it.”

Let’s be honest with ourselves: We’re all in this field for a combination of the money and the enjoyment. Code school graduates just happen to bring with them the courage to drop their previous work life and career path because they want to be in this industry. Isn’t that something that we should all welcome?

Junior Developers Bring Balance To Your Company

Instead, learn to embrace the opportunities that junior developers bring to your team. A well-balanced team has contributors at all levels of the experience pyramid: Junior developers to come in, fill in gaps, and learn; Mid-Level developers to take that next step in their career, work more independently, and provide guidance; and Senior developers to provide perspective and tackle the hardest problems. If your team is too top-heavy, there won’t be growth opportunities, people will grow bored, and you’ll likely suffer from “Too Many Cooks In The Kitchen” problems.

Additionally, decades of both intentional and unintentional neglect have left the ranks of senior developers as a monoculture. The ranks of junior developers are much more diverse: In gender, race, age, socioeconomic status, job experience, and more. I firmly believe that a diverse engineering team is best equipped to solve the problems and ship the products that will make a difference to the world in the coming years, and do my hiring with that in mind. Hiring and supporting junior developers is the best way right now to bring diversity to your team: both today, and to grow the senior developers of tomorrow.

In conclusion, I encourage hiring managers to rethink their opposition to hiring junior developers and code school graduates. Interview them, really listen to their stories, take a look at your software and find areas that you can support them as they try, fail, learn and grow. If you can support them, you will find that building great products becomes easier. And you will be building a pipeline of talent that our industry, and your future self, will be grateful for.

Wade Minter, CTO at Custom Communications

Follow Wade on social: Twitter @minter, Instagram @hwademinter, and LinkedIn https://www.linkedin.com/in/minter/

--

--