A lot gets covered in today's discourse about AI in software development. Most of it is noise, ranging from nihilism that we're all writing mediocre code anyway so why does it matter to endless wannabe AI influencers doing engagement bait on Twitter. Every new model release gets a bunch of threadicles 👇 amounting to the 2025 version of "Safari feels snappier". Some of it is useful, mostly crafty developers in the community sharing novel ways they're using it to solve hard problems or draw inspiration. A lot of it is slop, 80% of it is marketing.
There's something pretty important missing in this discourse though: the downward pressure it and out-of-touch executives at tech companies are having on junior developers in our industry. It's not a trend that started with AI, but it's certainly being accelerated by it.
What follows is my own perception of recent events. I am not an economist, I am not a CEO, my views are often shaped by what I see in the mobile engineering world and living in the US. I do feel confident in my read here though, even if some of finer details might be off.
COVID -> Inflation -> Layoffs
It's been going on ever since the red-hot labor market tech had during COVID. Nothing stirs large companies into action more than hot labor markets, the last thing they want to do is relinquish power to employees or have to meaningfully compete for talent. It's a recurring theme, the tech industry runs into labor suppression issues over and over and over and over. It's a core value that's always lurked behind the veneer of free lunches and ping pong tables. Tech employees, despite their progressive leanings, seem largely allergic to unionizing for reasons that mostly seem to boil down to "not enough people in SF/SEA/NYC are worried this will some day come for them."
Rising interest rates during inflation in the US saw companies tighten budgets and reign in spending. At the same time, this gave them an out to collectively reclaim the labor market power they'd been ceding, pointing vaguely at "macroeconomic conditions" in their all-hands to explain their layoffs and hiring freezes. This was also accelerated by Musk's mass layoff of thousands of employees at Twitter, creating a sort of model other companies eagerly followed. If you can do it while everyone else is doing it, your negative press might fly under the radar in the noise.
The market has changed and improved since then, inflation has cooled, but you can bet that leash has continued to tighten and will continue to for as long as companies can get away with it. Junior engineers are particularly affected by this: in a world where money's no longer free, companies start treating cultivation of junior talent as a risky investment rather than standard practice. The job market for junior engineers is bleak.
Shrinking Mentorship Vectors
Other factors came into play around the same time, particularly in the form of loss of mentorship avenues.
Twitter is Dead
Much of the tech community was active on Twitter prior to Musk's acquisition of it and much of the tech community rightfully departed it after. It never really landed anywhere though. Far from perfect, but Twitter was often a source of knowledge sharing, cultivation of ideas, and gave junior developers a general place to follow and be inspired by influential developers.
There are pockets on Bluesky and Mastodon, but a shell of what existed before. There are some Slacks and Discords that service well, but they are often private or overwhelming or both. There are a handful of good folks left on (now) X, remaining for different reasons that mostly boil down to not wanting to let go of the reach they had. What we had before isn't coming back though.
The "influential" developers left on X today are mostly a hot mess of weird right wingers/manosphere/clout chasers that contribute virtually nothing of value to open source, technical writing, or speaking. Because no team will hire them, they also work alone and offer little in terms of collaboration experience, instead spending their time spitting hot takes for attention. Unfortunately, this works. For the same reason it works in YouTube, TikTok and politics: humans are tribal to a fault, we want to believe confidence is competence.
In the absence of a true successor, these confidence men are now the most prominently visible people to junior developers entering the industry.
How do junior developers level-up to get into private Slack spaces? Where do they learn from if Stackoverflow is hostile, Reddit is hollowed out, and social squares are empty? They're eager and will reach for what they can see, but if the only thing they see are what's left on X, they'll rightfully feel like they don't belong here (or worse, be conditioned to think what happens there is normal.)
Remote Work
The other big change, and the one that's surely going to ruffle feathers to point out, is the seismic industry shift to embrace remote work.
Now, I can hear your keyboards clacking already so hear me out. I work remote*. I think remote work is great. I think everyone that wants to do it should be able to and I think that everyone should be able to get paid their worth regardless of where they choose to work remote from.
With that out of the way, I also think this has largely come to the detriment of junior developers. Not all, but a lot. In a healthy working environment, junior developers learn a million things by osmosis. Every "quick question" or "hey wanna see how this works?" or "can you help me with ___" or unplanned pairing or lunch or coffee break saturates those early years to the keen developer.
Then, the industry moved abruptly during COVID to a remote-first environment where all of these vectors were suddenly gone. I mean it when I say gone, because putting all those small moments behind the inertia of a zoom call means they never happen. Some teams and some companies have gone to great lengths to address this, but no one could look around at the industry today and reasonably conclude that we've figured that out as the standard.
There's no easy answer to this. Jesse Wilson had a line I liked that goes "junior developers should be in the office getting mentored by senior developers, and senior developers should be in the office mentoring junior developers". I don't go all the way to that, but some days in person/office getting mentored sounds good? Or at the very least highly encouraged? And to do that you need some seniors in the office to mentor them. Where it makes sense! Blanket RTO mandates certainly aren't the solution, nor are any of the companies imposing them genuinely doing so with this in mind.
I'm not perfect in this either. I went in to Slack/Salesforce's (*my previous employer) NYC office once a week despite Salesforce having no clue how to make a productive office environment, solely to be around for a new grad on our team. It's not enough but it's better than the current industry default of just pretending this isn't a thing.
I know there are millions of thoughts and feelings and exceptions and counterexamples to this. I look forward to your letters, they're also not the point of this post.
AI
Finally, we arrive in 2025. The age of AI, the age of agents, the age of ChatGPT and Cursor and Copilot and Junie and Claude Code and tech CEOs just making shit up when talking about how their companies are adopting it.
Companies are putting blanket, undirected pressure on all engineers to use AI tools in all their day to day without having any real idea of what that looks like. Whether it's a fear of missing the boat, looking good to investors, or just CEOs copying what other CEOs say they're doing, there is a rush to adopt AI-driven tooling. The cheese is absolutely moving.
This is hurting junior engineers, but not in the way I think is being talked about in tech or tech media circles. I don't think it's going to take their jobs, we've already established those have largely run dry. Rather, they are now pressed to use these tools they don’t understand, deploy generated code they don’t have the experience to safely evaluate/modify, and miss huge swaths of early career development experience that people did before AI.
Education doesn't stop after graduation, most companies have a whole career ladder from associate/L1 to senior/L5 that they expect junior developers to climb within a certain number of years. The rate of growth in this period is the highest it will ever be in their career. What happens to that in the age of "just ask AI to generate it"? Because now you're just managing an agent. How do we extract and measure competence from that?
Kevin Roose had a good line on the Hard Fork podcast that I liked about how to use AI tools pragmatically: it's like weight lifting vs forklifting. There is a time and place for both, and it is on you to recognize those moments. Sometimes you need to be lifting weights because it makes you stronger and healthier, and sometimes you use a forklift to quickly get through a bunch of stuff that isn't valuable for you to do yourself or at a scale that you can't do yourself.
There's no way we can expect new grads to know that nuance. Their incentives are increasingly to throw everything at the forklift and then we continue to measure them on how much they bench. What's worse is the forklift does stupid shit half the time. It wants to stack bricks on eggs, doesn't learn from its mistakes, and will confidently lie that bricks are supposed to stack on eggs. AI code gen does a lot but no amount of code gen will compensate for AI's utter lack of taste. That is something that is learned through experience.
All these kids that never learned how to find the cheese are now expected to just magically keep up, and I think the industry’s gonna churn a lot of them out. Many of them feel added pressure to just put up with it because the ones that did get jobs out of school suffer clinical survivor’s guilt in a horrendous junior labor market.
I again don't have good answers here. I have an answer, that will again surely get angry letters in my inbox, but I'll say it anyway:
I think junior developers shouldn't generate production code with AI.
Other AI tools are fair game ("explain this code", "generate docs", "generate tests", etc.) Those inherently help them learn and understand what they're working with, and they have to ingest what it says back for it to have been worth asking at all. But generating code they can blindly commit does not benefit them and, in my opinion, hurts everyone in the long term.
- They lose the opportunity to learn, not just why that solution is good but why the other solutions they would've tried along the way were bad.
- They lose the opportunity to learn that in practice and in code review. Code reviewers either blindly trust it too (bigger problems, but not new with AI) or then have to try to ask a developer to defend something they didn't write.
- The organization is now shipping less-understood code, generated by a machine it knows hallucinates, reviewed by someone that by definition does not have much experience to know bad AI code gen when they see it.
If nothing else, we require training to operate forklifts and AI code gen is (almost always) a forklift. We already have that training pipeline too, it's called experience and it happens while leveling up from L1 to L5. Maybe it doesn't need to wait till L5, but no company would reasonably have someone operating a heavy machinery without prior training. Those early days are supposed to be about creating a space for them to learn and grow and safely make mistakes.
That's just forklifts, here's some other examples:
But Zac: people used paper maps before google maps.
Google maps replaced the lookup, not the actual driving or decision-making.
But Zac: people sewed by hand before machines
Machines only sped up the physical act. They didn't decide what you should wear, what colors to match, what patterns to cut.
But Zac: new grads are coming in just knowing how to use AI tools now!
Sure, and have you asked educators about how that's going for fundamentals?
AI tools can be a fantastic accelerant for ideation (even suggested some of the examples I just listed!), speedups of repetitive/tedious tasks, and lookups. I use them all the time! AI is not, however, a replacement for thinking.
A Call to Action
We know AI disrupts education because we already see it happening in education. It's no different in our field. But, unlike the teachers, tech companies have largely forgotten that part of their job is to teach. Pile that on top of all the other headwinds junior developers are facing in terms of employment and mentorship, I worry we are headed for an avoidable labor collapse in our industry.
Mentor your junior colleagues, give them the space to learn and make mistakes. Share your work/learnings in the community through open source, writing, and speaking. And lastly, be an advocate for them in the face of whatever "macroeconomic conditions" your workplace imposes on them.
If you're in a distributed team, try to get your company to invest in good remote pairing software. Sorry to say but general video conferencing tools like Zoom and Huddles are far inferior to dedicated ones like Tuple. Consider making explicit "office hours" where you're online and ringable if anyone wants to chat. Don't waste offsites/onsites on endless meetings that could be better served getting junior ICs direct mentorship time and team building.
If you're a junior developer reading this, remember that our field is first and foremost a craft. That doesn't mean you need side projects or overtime or open source (although side projects and open source, if you enjoy them, are great avenues for learning and mentorship). 9-5 is normal, what matters is that you take an intellectual curiosity in what you do from 9-5. Take every opportunity to learn something new, to sharpen yourself, or improve the things you build. You should take pride in your work.
If nothing else, try to be mindful of when it's time to weightlift vs forklift, because the first programming jobs AI actually automates will be the forklifters.