Something I last worked on with a junior engineer was our in-place backup system. I designed it and wrote the tricky part that involves DLL hell in a docker container. He wrote the "list backups", "delete backups", "create backup" CRUD API and CLI. My time was then free to put out fires or design something new.
It's not necessarily a no-brainer to hire and mentor junior engineers like the article says, but it's something you should think about. You will be surprised how much people actually know at job #1, and how quickly they can take on more complicated work that pays back your time investment in their mentorship. Plus, someone probably trained you to get you to where you are today, so there is some fairness in continuing the cycle.
Also, even seniors are usually more than happy to outsource work they've already done a million times, but that's still new to the junior ("build the Terraform to stand up this cluster" etc).
Besides most companies won’t last long enough to worry about senior talent drying up.
I know in other industries they have a kind of lock in where they provide free training under the condition that you work at the same company for a number of years. Which sounds bad but I don't see many alternatives.
It's a totally unavoidable problem with our industry.
People get bored working on one domain, one product and one codebase.
And most software shops have one domain, one product and one codebase.
It's pay. It's always been pay.
It's the pay.
> People get bored working on one domain, one product and one codebase.
Yeah bullshit. It's the pay.
If people are happy, paid well, with regular cost-of-living raises at minimum, with upward mobility, helpful and useful managers and interesting problems (doesn't have to be an interesting domain. The problems themselves just need a bit to chew on) and the latitude to solve them and grow
They're not as likely to leave.
That's true, but why are you qualifying this with "who provide negative value at the start" in the first place? What if you hire juniors who provide positive value at the start instead?
This is the fundamental contradiction of LLMs. The promise today is that the tooling can largely replace juniors, and honestly that may be true.
The hope behind that promise, though, is that the tech will catch up with senior devs before the pipeline dries up and that we have found a sustainable social and economic model before humans truly aren't employable at any meaningful numbers. That hope seems ill placed to me, but I guess we'll see if we develop such skilled LLM or similar tools at all.
It is absolutely worth hiring and training juniors. The quality of your onboarding process and documentation will improve. Not only that but a junior will ask questions that senior engineers take for granted, such as "why are we doing X this way?" which can lead to improvements that your existing engineers might not have considered.
Finally, if junior engineers are joining your organisation and leaving every 9-18 months, you need to take a serious look at your career progression ladder and compensation. I have seen way too many companies that have an arbitrary "you cannot receive a promotion in the first X months" HR policy which is just asinine. You know who doesn't have this stupid policy? The company your junior just accepted an offer from.
If your organisation doesn't have the tools and processes to up skill junior engineers into seniors, then it doesn't have professional development for senior engineers and is just a career dead end.
We also have to remember that if our juniors leave 9-18 months later, everyone else's juniors are leaving too. Churn has a cost for sure, but if I can hire someone else's junior that they put 18 months into then I am still better off.
But that's fine. The junior you trained up will be more effective at their next job, and the junior your competitor trained up will be more effective when you hire them at your company. Again, that's how it's been for far longer than we've had LLMs.
I am saying that I care about them, and individually we all should pay attention to them. In this case, I will continue to push for juniors even if my higher-ups push for us to hire seniors only and augment our workforce with LLMs for more junior-level work.
It's stupidly expensive though if you look at the opportunity cost of that already-onboarded senior/lead/staff eng time. And this was obviously more compelling when it was super hard to hire senior talent.
>The great software developers, indeed, the best people in every field, are quite simply never on the market.
>The average great software developer will apply for, total, maybe, four jobs in their entire career.
>The great college graduates get pulled into an internship by a professor with a connection to industry, then they get early offers from that company and never bother applying for any other jobs. If they leave that company, it’s often to go to a startup with a friend, or to follow a great boss to another company, or because they decided they really want to work on, say, Eclipse, because Eclipse is cool, so they look for an Eclipse job at BEA or IBM and then of course they get it because they’re brilliant. [Replace Eclipse with $HOT_TECHNOLOGY, like AI agents this year.]
>If you’re lucky, if you’re really lucky, they show up on the open job market once, when, say, their spouse decides to accept a medical internship in Anchorage and they actually send their resume out to what they think are the few places they’d like to work at in Anchorage.
>But for the most part, great developers (and this is almost a tautology) are, uh, great, (ok, it is a tautology), and, usually, prospective employers recognize their greatness quickly, which means, basically, they get to work wherever they want, so they honestly don’t send out a lot of resumes or apply for a lot of jobs.
- https://www.joelonsoftware.com/2006/09/06/finding-great-deve...
Most of the best programmers I know have worked 2-3 tech jobs. An internship or entry level job, a cushy job at a major company, and either retirement or a third job that they took because the problem was incredibly interesting and they got nerd sniped. I even saw the "medical internship" scenario happen once; a great colleague of mine had to move to France for his partner's career in medicine, so he quit his job and found something over there.
If you happen to be a superstar with a rare niche skill (like building frontier AI models), you basically skip the interview loop and get fought over with million-dollar offers. But that’s a tiny fraction of the market.
For everyone else, hiring looks a lot like dating: both sides aim for a “10,” but usually settle for a “6 or 7.” And the whole process is signaling—candidates overstate their skills, companies oversell their culture and tech stack, and the match lands somewhere in the middle.
Probably the most important non-technical skill is dealing with the egos in the industry since you will come across a lot of them.