I read an article the other day called Who Killed the Junior Developer. The author talks a little about her experience with job hunting as a new graduate and also what the job advertising landscape looks like. The cliche is that companies create advertisements for a position that they can’t possible fill. They want a new graduate with 5 years of ruby experience, expertise in Angular, Underscore, and some random NoSQL database. And the starting salary is 40K a year in a large North American city. The company decides they can’t find a suitable candidate and then outsources the work to somewhere in Asia or Eastern Europe.
This is hyperbole with a thread of truth. Really though, where are the jobs for junior engineers?
I got into tech through a series of random events. A construction job led to getting recruited by the IT department to pull cable which led to meeting someone that had a studio type development shop which eventually landed me in software testing. I got all of my junior jobs through connections.
People that graduate from bootcamps and connected undergrad degrees do something similar. There is a software development boot camp in town that produces a couple of cohorts each year. The school is mostly funded by local companies that have a need for developers that can work in a specific stack. Any promising graduate of a cohort has a job in place on graduation day.
This means there is a funnel of newly minted junior developers that never have to look at job advertisements. It also translates to companies that might want junior people, and that isn’t every company, never having to advertise for the jobs they have open. The remaining open junior positions are from companies asking for something that doesn’t exist either to scam new people into a deflated salary, or to justify sending jobs overseas.
The other thing I think is interesting in this equation are the companies that don’t want junior people, usually startups. and the incentive systems that make hiring difficult. I was working at a healthcare startup a few years ago and we wanted to grow the team by one developer. We interviewed a few promising new graduates but the team ultimately decided that they didn’t want to be slowed down by the teaching and mentoring process. Even a good junior person will require some care and feeding. That might take the form of pairing, or more in depth code reviews, or an actual program to develop and assess skill. All of that takes time away from the work. I usually only see this at larger, more structured and established, companies.
The other side of this is that companies get trigger shy about new people leaving. They want a skilled person, and ask the question of “what if we spend 2 years training this person up, and then they just up and leave”? If they do hire junior devs, they make minimal investment so that they don’t lose much when the person leaves. This creates a terrible circle of incentives where the company doesn’t want to give the employee anything because they might leave, and the employee is most definitely going to leave because the company won’t give them anything.
The junior developer problem is created by a combination of an invisible talent pool, and companies that steal away any incentives. Getting that first job has always been difficult, but I don’t envy new job seekers today.