The Cultural Push to Hire Junior Software Developers
March 17, 2019
A friend chatted me recently, with an interesting question.
What is behind the rise of the “hire junior engineers” push that is going on industry wide?
We had a long conversation that I decided to translate into written thoughts.
Industry context
High demand for senior talent, low supply
There is a huge gap between the existing supply and the growing demand for software developers. There are more job openings for software developer roles than qualified people to fill them. The U.S. Bureau of Labor Statistics projects that by the year 2020, there will be one million unfilled software jobs.
The demand for software developers is growing faster than the average for all occupations. This is partially because in an increasingly digital world, demand is rising in finance, retail, manufacturing, and other traditional industries, beyond traditional "tech" companies.
These stats back up what I would venture to say most working software developers personally observe and hear anecdotally, constantly. Especially via LinkedIn.
Saturation of junior talent
We have a dearth of qualified talent to meet existing demand.
Back in 2014-2015, the number of computer and information science bachelor degrees earned was 59,581. That doesn't even come close to starting to close the supply gap.
We have a situation now where everyone wants to hire senior, and there's already not enough senior or mid-level talent to meet demand. And at the same time supply is not on a growth trajectory to meet that demand, much less growing in proportion to the growing demand.
The explosion of code bootcamps is itself a sort of proof that there's a market to fill that gap. In contrast, because of bootcamps and things seeking to fill the demand, we have a saturation of eager, junior talent. At the same time, finding a quality, junior, entry-level job is a challenge. They're hard to come by, and the ones that are there seem to seek experience far above "entry".
My career context
A slight diversion into my career path, for context on my perspective.
Getting my foot in the door involved knocking on a lot of doors, and trying to figure out what I needed to do to finally have my Developer Card™️.
I don't even remember really when I started tinkering with static sites. When a web position opened up in the nonprofit I worked at (doing marketing, branding and graphic design at the time), I jumped at it. I got it -- at least in part, I believe -- because the person leaving (causing the open position) advocated for me, knowing what I could do. (This is not about me not deserving it -- I was qualified -- more about the fact that no one else at the non-profit really understood the job.)
That was great, but ultimately I was frustrated by not having anyone to learn from. It was whatever I could figure out on my own. I started applying for front-end developer positions.
At an agency I had a great feeling about, I interviewed for a front-end development role. Ultimately, because of my "well-rounded background", I was offered a position as a "technical strategist" instead, which was part business development, part client management, part project management. I figured that meant I wasn't ready to be a professional web developer (Despite the fact that that was currently my full-time job. Cognitive dissonance is amazing), and that this would be a good stepping stone. At the time I started, the agency had zero female developers.
The position did not fulfill what I wanted -- shocking, I know. While I was there, they did hire a female dev, and she was an amazing and supportive mentor and friend to me. She had been a social worker, and career changed by doing a bootcamp. She gave me the confidence to make a hard shift, and take the leap. I left DC, moved back to Texas, and went to a code bootcamp in Austin. (Makersquare, before it was aquired by Hack Reactor, before it was acquired by Galvanize 🙃).
Through this entire narrative, I suffered from ignorance of what I didn't know. I didn't know how to get where I wanted to go, or even what that position looked like. I could never have envisioned where I am now.
How about when I got my Developer Card™️? This imposter may never know, but still wonders:
Ok tech twitter: How long have I been a developer?
— amberley (@amber1ey) February 10, 2019
- 2003/2004: Start tinkering with code.
- 2008/2009: Start designing/building static sites.
- 2012/2013: Start maintaining/building sites w/ WordPress + Blackbaud NetCommunity.
- 2015/2016: Start building web apps w/ React.
Why the push to hire junior?
With that context in mind, here are some of the main reasons I think there's been a strong, vocal push to hire junior devs.
Because we need new talent for our industry to thrive
Senior engineers do not spontaneously manifest from the ether like full-grown Athenas.
Sometimes when companies say they're not hiring junior developers I want to shake them by their hoodies and yell, where do you think senior developers come from?!
— Kate Heddleston (@heddle317) September 13, 2018
We need to be nurturing junior talent, to fill existing and future demand. Every industry requires this for longevity. Given the demand for senior talent, and the short supply, where do we expect the gap to be filled?
In talking about hiring juniors, I have heard things like "If I hire a junior, they'll just move on later after they get some experience, and then what's the point?" In my opinion this an unproductive way to frame this question. Instead, perhaps, "How can we create a working environment that is so fulfilling and vibrant that a junior wants to continue to grow and become a leader from within?" Institutional knowledge is invaluable, and it makes sense to foster a culture that sustains that, rather than ensuring the realization of a self-fulfilling prophecy. If you foster a culture where your junior talent wants to stay and grow into senior roles, you're probably going to retain existing senior talent better, too.
This is also related to a larger industry issue:
I just realized in 21 years, I've never worked at a company where I saw an engineer get a promotion except Google. And at Google, you basically have to move a mountain to get one if you're senior. I think everywhere else people just find new jobs for promotions. 🤔
— Ben Lesh 🧢🏋️♂️💻🎨 (@BenLesh) March 13, 2019
In a way, it feels we've made it inevitable for folks on every level to need to move on to move up. Once in the door, it can keep you stagnant. Anecdotally (see tweet and replies), it can be hard to feel a sense of career progress, if you have to leave for a title or pay bump. If you're not already in the door, it's just gatekeeping.
Because -- surprise -- we still suck at diversity...
Before working with Gatsby, I had worked with two other female engineers. Now, that total is four. (When I was hired on at Gatsby, I was the first. We now have three, including myself).
At the same time, the current talent pool in the industry is overwhelmingly white (74.2%) and male (92.9%). That was from the most recent general Stack Overflow survey. The "State of JavaScript" looks pretty similar:
Double glad I answered this #StateOfJS pic.twitter.com/7Iztass1VL
— amberley (@amber1ey) November 20, 2018
It's self-perpetuating. In order to diversify and enrich the talent pool, we have to make a concerted effort to not only nurture new talent, but to be willing and proactive about opening the door.
And -- surprise -- diversity has value
Higher bottom line
A report from Intel found that:
Improving ethnic and gender diversity in the U.S. technology workforce represents a massive economic opportunity, one that could create $470 - $570Bn in new value for the tech industry, and could add 1.2-1.6% to national GDP.
Better products
A viral video went around a couple years ago. A Nigerian man tweeted a short video of an automatic soap dispenser that responded to a white person's hand, but not a black person's.
If you have ever had a problem grasping the importance of diversity in tech and its impact on society, watch this video pic.twitter.com/ZJ1Je1C4NW
— Chukwuemeka Afigbo (@nke_ise) August 16, 2017
Apparently a darker skin tone wasn't enough to register with the sensor on the dispenser. A problem that should have been avoided by testing on a spectrum of skin tones. A diversity of perspectives and backgrounds in teams mean better product design, testing and execution.
Modelling lays the groundwork for others to follow
The same reason that diverse representation in media is important. If every doctor you see on TV is male, it would be reasonable to conclude that "doctor" is a male-gendered profession. On the other hand, if you see a diverse set of people portraying doctors, including people you identify with, it's easier to envision yourself in that role.
The movie Hackers (originally released in 1995) was the first movie/television show that I'd ever seen with a Black "computer programmer" as a character. I was 16 years old and enrolled in a Visual Basic course at my High School shortly after. Representation in the media matters.
— Howard E Sueing III (@ChapAndScholar) March 15, 2019
It never occurred to me to study computer science, or that working with the web was anything but a hobby. It took time, and meeting a single female software developer. I may have never had the courage to quit my job and pivot if not for meeting her.
I saw a great Twitter exchange recently that touched close to this for me:
i think it’s a more complicated story for women, poc, under represented. often undertitled for years at jobs, paid less, passed by for promos. i have it not to brag but to be taken more seriously, to inspire other women that senior ladies exist in this industry & it is possible.
— stacy london (@stacylondoner) March 7, 2019
So combine that with the squishiness around "what is a junior, mid-level, or senior developer". There are no universal qualifications, no agreed upon competency rubric.
Then combine that with this statistic: "Men apply for a job when they meet only 60% of the qualifications, but women apply only if they meet 100% of them."
You could say that it's on women to apply anyway, but I would argue that that ignores a lot of existing discriminatory socialization. For example, a study by researchers from Harvard, MIT and the Wharton School found that investors preferred pitches presented by male entrepreneurs over female entrepreneurs -- even when the content of the pitch was the same.
So often, men will apply up, and women won't. Or even if both apply, and are equally qualified, the male applicant may be perceieved to be more qualified or promising.
I think this results in an uneven acceleration of "seniority", but also entry into the industry, period.
It makes business sense
But "doing the right thing" doesn't always line up with what's "best for business", does it?
This is the part of the conversation that always reminds me about the hurdles in making the case for web accessibility. There's a whole area of the Web Accessibility Initative site dedicated to the business case for web accessibility, to help educate people to make the economic case for web accessibility.
Aside from that Intel study that indicates lost potential economic opportunity, hiring juniors has other benefits:
More understandable code gets shipped
Your company needs junior engineers. They learn and grow from doing work that will bore your seniors, and having them do code reviews keeps seniors from writing some weird overly complicated code that they don’t realize no one else can read.
— Elizabeth Uselton (@lizuselton) March 9, 2019
Just like writing a talk forces you to understand your subject matter on deeper level, explaining and talking through things with someone else, and particularly someone more junior than yourself, forces you to understand it better, and uncover holes in your implementation and thought process. Simpler code is more maintainable and less buggy. At the absolute least, it's a valuable live "rubber duck" situation.
Smarter distribution of tasks
Also, like others have said. With good mentoring you can cement your domain knowledge, stabilize code, improve communication, and level up a junior into a senior all at once. So many wins for one perceived large cost that is actually inexpensive in long run.
— Nick Funk (@softfalcon) March 14, 2019
Certain things need to be architected and led by extremely senior, experienced engineers. But a lot of day-to-day work does not require that level of expertise. Distributing tasks keeps people engaged -- it keeps senior people from getting bored, and it keeps less experienced folks growing and levelling up in the trade. It's a smart allocation of resources.
Empathy
In talking about this with others, I find that empathy almost always enters the conversation.
I think part of it may be that as more of these types of developers enter the market and become more senior they remember what it was like trying to break into the industry and how difficult it is and just want to help others who are currently dealing with that.
— Kurt Kemple 🥑 (@kurtiskemple) March 14, 2019
We remember what it was like, trying to break in, finding a path, knocking on a million doors. The very first JavaScript meetup I went to was me and forty dudes. I don't want that to be the reality anymore. It is a net gain for everyone to make our existing networks less homogeneous, and if we're not asking ourselves and each other how we can do that, I think that's a shame, and a failure.
tl;dr
I think the push to hire and grow junior talent cannot be disentangled from the push to diversify the tech space, which has social, cultural, and economic benefits. The health of our industry and the quality of what we create depends on increasing diversity in the field, and creating a larger talent pool.