It's harder because they dramatically raise the bar for what's possible to do. An individual developer can take on significantly more challenging projects now, because the ultimate constraint has always been time and AI can help you get more done in the time available.
But the stuff you can get done with that time is a whole lot harder. You have to understand lots more things, and get radically outside your pre-AI comfort zone.
It used to be acceptable to spend several days refactoring a codebase, or figuring out how to ship a small feature because it's in a part of the system you hadn't worked in before or involved learning a new library in order to build it.
Coding agents mean you can climb those curves a whole lot faster, but you still need to climb them - and the volume of information coming your way is much higher.
If you're worried about non-technical vibe coders taking your job, the correct response is to be much better at building software than those vibe coders. That means you need more skill, more ambition, and more experience. It's hard!
AI raises the bar again, as its probably at least as good as me, if not better, at anything I learned in college. I've spent years living off of random trivia from the last 30 years, as I saw computing grow with me. How do you know this?! Because everything built on top of it didn't exist when I was your age, so I had to learn it! But well, nowadays the AI is better at that trivia too.
The world moves, we do what we can with what we kno. It's not just programming, but what innovation and automation has done to the vast majority of things humans have done to be productive for each other since humans are people. We'll have to cope, like the guy that bred oxes to pull the plows.
This is a false fear. The real risk isn't that some 19 year-old vibe coder is going to replace you, it's that there's simply less need for more experienced engineers. The market is shrinking.
Also, even if the premise behind the SaaSpocalypse is naive and oversimplified (companies aren't going to replace all their SaaSes with internally vibe-coded replacements), it looks reasonable that net-net AI will have a negative impact on the value of software.
That last sentence is verifiably false if you look at SWE job postings and their recovery since 2022.
It’s also a poor take in general, buying very much into the narrative propagated primarily by OpenAI and, especially, Anthropic, who nonetheless continue to hire large numbers of SWEs while paying double the market rate.
Source?
https://fred.stlouisfed.org/series/IHLIDXUSTPSOFTDEVE
And it's probably worse than it looks because phantom job postings are a real thing.
> ...who nonetheless continue to hire large numbers of SWEs while paying double the market rate.
Tech companies have laid off over 200,000 people since the beginning of 2025. Even putting aside the fact that (from what I understand) over half of Anthropic and OpenAI's employees are in non-engineering roles, if you assumed every employee was an engineer, Anthropic and OpenAI could triple their staffing levels and it still wouldn't even fill a quarter of the void.
Do you take into account recent layoffs of Meta (8k people), Block (4k people) and others?
Though I'll say I don't buy the stuff about AI "democratizing" development since making it much more capital-intensive kind of has the opposite effect for anybody doing dev work at home.
But yes - once it's that easy you have to step up your ambitions.
It definitely won’t be CEOs and managers not firing their buddies
I'm sorry to say, but AI coding assistants paved the way to professional imposters whose only skill is prompting a model to do something. I already had the displeasure of working with a software engineer who not only introduced a bunch of regressions that by mindlessly vibe-coding things against the requirements but also complained that not having credits to use the most expensive frontier models was, and I quote, "stifling my creativity".
I believe we are headed for a world of superintelligent AI where LLMs are much better at logical thinking than humans, the same way that chess engines are much better at chess than humans.
In that world there's really nothing humans can offer in terms of logical thinking other than their humanity itself. An 8 year old with Stockfish can beat Magnus Carlsen, and an 8 year old with Codex (and daddy's credit card) will be able to beat me at software engineering.
It doesn't matter how great the LLMs get, the act of creating software using them will still require a great deal of skill.
Most people just don't think in terms of software.
Try asking a non-developer in your life what their dream software would be for their work, or their hobby. If they don't have what Nilay Patel calls "software brain" I'd be surprised if they came up with something actionable.
(For more on software brain see "THE PEOPLE DO NOT YEARN FOR AUTOMATION", which makes the point I"m making here but much, much better: https://www.theverge.com/podcast/917029/software-brain-ai-ba...)
You could give a non-developer the smartest LLM in the world and they wouldn't be able to create GitHub with it, because creating GitHub requires an enormous amount of understanding of what software developers need from a cloud source control tool.
Sure, you can argue that the LLM "knows" what GitHub needs already and can guide their human-user to that, but why would a human-user who doesn't understand the domain ask an LLM to do that in the first place?
I've posted this in numerous comments because I think it bears repeating: there are tech-savvy non-developers who are actually building and shipping stuff with AI. I personally know a few who have been successful in acquiring initial customers.
You can say "but their apps won't scale", "their apps aren't secure", etc. and you might be right but these criticisms ignore the fact that most human-built software suffers from issues around scalability, security, etc. What AI in the hands of a relatively tech-savvy person is capable of is building functional, usable applications that are pretty decent compared to what you might get if you paid an experienced contractor tens of thousands of dollars to build.
A whole generation of young people has grown up with the internet, smartphones, etc. They might not be trained software engineers or have a "software brain" but in many cases they probably have a better intuitive sense for digital product design than a 30 or 40-something engineer who has been staring at an IDE for the past decade(s).
It'll shake your world, but tech-savvy non-developers were building and shipping long before AI.
> they probably have a better intuitive sense for digital product design than a 30 or 40-something engineer who has been staring at an IDE for the past decade(s).
Because developers only stare at IDE 24/7, and never interact with anyone besides mother who brings tendies to their basement? What am I even reading?
They weren't building and shipping by themselves though. They were hiring people to do the work.
AI has made it possible for people with motivation and time to do what was previously only possible with motivation, time and money.
> Because developers only stare at IDE 24/7, and never interact with anyone besides mother who brings tendies to their basement? What am I even reading?
Why is so hard to acknowledge the fact that many of the people who are good at developing aren't as good at coming up with ideas for digital products and building businesses on them?
I absolutely believe that. I think those are people with "software brain" who are on their way to becoming real developers.
By the point they can write apps that are secure and scale... they'll have learned enough about software development to be employable as software developers. They'll be part of a new breed of developer who never memorized the syntax of a programming language, but they'll still be at the starting point of learning a HUGE volume of other stuff that's necessary to build good software.
If we want to stay employed, we need to be notably better at building software than they are.
I've also seen an assumption that you've made here that I think is worth drawing attention to and questioning: that the tech-savvy non-developers are starting from zero or near zero when it comes to programming and software development. Right now, that's probably mostly true, but I'm not sure that will continue to be the case. I'm not a developer (depending on how fuzzy we want the boundaries around the idea to be, anyway). I do understand the building blocks of programming languages (e.g. I can answer all the questions fragmede posed in a sister comment), the trade-offs between rolling your own and using existing libraries, the need to evaluate tools, frameworks, and languages to determine which is best for your use case, why version control matters, why access rights matter, why backups and a test environment are necessary, why it matters to write code another human can read, etc.
Do I understand as much as an active working developer? Absolutely not and I'd never claim to, but I'm far from starting at zero.
The reason for this is that I was raised by programmers. There are far, far more programmers and general tech nerds now than there were in 1988 (when I was born). Which means that in 10-20 years, there are going to be a lot more children, grandchildren, nieces, nephews, and so on of developers, and a lot of them are not going to be starting at zero. For pretty much of all computing history, there's been a substantial opportunity cost to developing a deep understanding of coding and software development: either a person has to be so into the domain that they devote a lot of their waking hours to it (usually in adolescence or young adulthood, when that trade off closes the most doors and makes developing certain other time intensive skills difficult), or they have to obtain a CS degree, which means not getting a different kind of degree and often incurring significant front-loaded financial costs. The opportunity cost for people born into programming or tech families is much lower. You can start younger and spread out the hours needed to learn across a greater amount of years, you can acquire knowledge in less time-intensive ways and while practicing other skills (e.g. my cousins also have 'software brain' and we could all hang out and develop those skills while also developing in person social skills), and you have a built in network of experienced people who want to help you + that can give you extremely individualized, personalized attention.
If what you suggest comes to pass, I think that one of the greatest threats to SDE as a career is going to be your own children and grandchildren.
About a decade back, we, as an industry were collectively learning how to make apps webscale, and oh the blog posts about not using a database as a queue. But the LLMs have ingested all of them. I've only read the ones I came across, and of course my professional experience being part of teams implementing that at various companies. So I've got that going for me, but when the Vibe-platform-dev just has to tell the LLM "hey, when the user hits the send message button, it's slow. /goal make messages fast", and the LLM grinds for hours overnight switching the entire system over to a pub sub event driven architecture and the vibe-platform-dev doesn't even know what pubsub stands for or that they're using one unless they go back and read the transcript. I don't think there's as much of a domain expertise moat for as long as we're hoping.
Take a look at the Reddit forums for vibe-coders - now that a bunch of them have been hacking on things for 3+ months there's a growing awareness there that you hit a wall. Here's the first post I found from just searching "reddit vibe coding wall", it's a great illustration of the genre: https://www.reddit.com/r/vibecoding/comments/1sabdw3/anyone_...
Software development is really, really hard. Coding agents can get you a surprisingly long way, but if you want to build real software for real people you quickly find that you DO need that domain expertise.
The agents may type all of the code for you now, but you need a huge amount of skill to clearly tell them what to do, confidently decide what to do next and credibly present software that works for other people to use.
I don't have any automated LLM scanners, but I do frequently have ChatGPT run searches for me with questions like "Find the most credible accounts of the recent Oracle layoffs, how they went, rationale, problems caused".
wouldnt you still be in a better position when prompting “site slow, make fast”?
The business goal is that the site is slow. That gets fixed by the non-technical vibecoder for the cost of however many tokens. Why look for outside help (aka me) if there's no need to and the AI can do it all?
In my opinion, this is a software developer-centric way of thinking that reminds me of the saying, "if all you have is a hammer, everything is a nail."
Here's an alternative perspective:
For billions of people, technology products are an integral part of daily life. As a result, lots of people have an interest in building technology products, particularly software. Thanks to AI, you no longer need to be a "real developer" to build software. You can learn enough to build things that are commercially viable without seeking to be employed as a developer.
> If we want to stay employed, we need to be notably better at building software than they are.
While I don't believe that the market for developers will shrink to 0, unfortunately, I think this type of comment reflects the fear, existential angst and denial that has overtaken many people in this industry.
The reality is that developers are no different than all the displaced workers who came before them. One day you had a job that seemed secure and capable of providing for a comfortable life and the next you were facing the prospect of diminished wages and unemployment because the world simply needs fewer people with your skills and there's no way around the secular trend.
The sad irony is that when software was eating the world and new CompSci grads could take their pick of $150,000+ job offers before ever writing a line of production code, a lot of people in the industry had a smug "tough luck" attitude towards all the workers being displaced by the tech boom. Now it's their turn.
You could've just written this sentence and dropped the rest. I understand your vindictive, "justice", self-hate line of thought, but not it's not a healthy way to live. Get help.
There's a whole world of opportunity that lives below complex multi-tenant applications that have to deal with high TPS.
> At least at present you're positing there's no need for carpenters because the home gamer can knock together a table or birdhouse at home.
This is an extreme, straw man argument. And here's the thing: I don't know a home gamer who framed a house. But I do know tech-savvy people who have used AI to build web apps that they have launched and been able to get customers to pay for.
Not every tech-savvy person has the ability to do this but the whole "you can't do that if you're not a software developer" argument looks to me like a denial mechanism more than a reflection of reality. People are doing it because the AI tools have advanced to the point where they can.
With all due respect, this sounds like just another version of the arrogant, scared attitude that seems to be more and more prevalent among software folks these days.
Is it really hard to imagine that there are tech-savvy people who are smart and motivated but don't have training as software developers, who are now capable of using AI to build and ship things?
In other words, AI doesn't allow any "any idiot" to build commercially useful software. What it does is allow smart people who aren't software developers and who don't want to become software developers professionally to, with a much shorter learning curve and on a much faster time scale, take their ideas and build and ship functional software.
I would argue that the non-developers who are able to use AI to build, ship and sell software aren't "self-taught software developers". The biggest reason is that they're effectively not learning how to code in any meaningful way. They don't need to. AI is getting "so good" that they can prompt their way to functional software without the same level of knowledge and skill that was required previously to do the same.
We can discuss the limits and risks of this, and you can criticize AI's output, but the reality is that people are actually doing this and having some success. First hand, I've seen a former colleague who is a skilled digital marketer with no development experience launch a web app for a niche market and sell it to a number of customers.
I don't understand why you're so interested in extremes (your skilled versus deskilled hyperbole). Is it really so hard to contemplate that AI is disrupting the market for software development? It's not that it has eliminated the need for intelligence and skill; it's that it is allowing a larger number of people to do something that previously required a different set of skills that was much more difficult and time-consuming to acquire.
To use Silicon Valley speak, AI is democratizing software development. That doesn't mean every idiot can build and deploy a functioning web application; it does mean that a growing number of intelligent, motivated non-developers can.
Being in the weeds of the trade expands the lens of capabilities so I’d give the upper hand to someone more deeply aware of the tech vs not. even though that in itself is still not sufficient.
I mean, sure. But there have always been people teaching themselves to program too. In the end it's a pretty small population.
One of the reasons I'm increasingly skeptical of this prediction is that I've now lived past a few of the dates I heard people put on the achievement of this level of superintelligence in previous years.
But then again, logic is really a lot more discrete and well defined and easily expressed with traditional computing than LLMs are (which are probabilistic systems instead and as such require large knowledge bases).
We can observe that at a couple hundred billion parameters they behave similarly to a point (in the sense that they can produce similar results), but the challenge is really in understanding the problem's multifaceted structure and competing needs and priorities.
What prompt would someone have used to get a superhuman coding agent to output the Linux kernel or GTA5?
Before you accuse me of moving the goalposts, that's not my point: The examples are there to help think about what humans would still need to do to build complex projects even if the coding itself was perfectly reliable.
Both the Linux kernel and GTA5 contain a large amount of incompressible information; humans thought long and hard about how to design them, i.e. about what that thing they were building was even supposed to be.
By your logic anyone who's not in the top 10% of intelligence can't offer anything. The world keeps spinning.
> An 8 year old with Stockfish can beat Magnus Carlsen, and an 8 year old with Codex (and daddy's credit card) will be able to beat me at software engineering.
That's just nonsense, nobody will work with 8 year old (it's illegal, to start with). Go touch grass.
I'm not worried about non-technical vibe coders taking my job. I'm worried about psychotic VCs and CEOs putting me on the street in the name of "optimization" of "lower value human capital".
I've been working on something relatively large and greenfield recently.
A big chunk of my time is spent thinking about the hard parts. The raw information processing rate needed to keep up with the state of the project is high.
It feels almost like mental athleticism, whereas coding used to be a rather chill activity.
it used to be that i pay your due at some enterpise and learn some corner of codebase really well and become go to person. that would give you job security.
Now I’m basically expected to do what my boss wants me to do every minute of the day, it’s gotten much more micromanaged.
Before: "I learned very little this year, because I was placed in charge of the same stuff, and I've already learned most of what I could from tinkering with that code, stepping through its architecture, and dealing with those recurring problems."
Soon: "I learned very little this year, because I don't deeply interact with anything, I just pull the lever on the babbling slot-machine until I get lucky and things seems to quiet down."
If you believe Claude makes you a good engineer and you previously weren't, I am saying that's not true and you still are not a good engineer even with the latest-and-greatest Claude model.
The difference is between "helps" (in your comment) or "you are". Sure, it helps a good engineer do more, do better, etc — but the thread was on being a good engineer.
It's "just another tool", sure. But one that is so powerful that some things that used to take a day now take minutes, or ones that used to take a week now take a day. And I get even more praises now, along with more time to focus on understanding the needs and controlling quality. For me it's not really about stuffing as much features as possible, but providing better software.
I'm glad this happened after 25 years in my career. I believe I'm in a privileged position where I can benefit from LLMs and still have the knowledge to effectively correct the machine or go back to "manual mode" if anything goes wrong.
But also to the original Simon's point that using LLM does not a good engineer make — how we make one is still on us with 10+ years (I've got "only" 20) of experience to figure out now that LLMs are here!
Implicit definition of a good engineer is the one who chooses the right balance between effort, complexity, performance to build a working software system for a business need that can be evolved according to (unforeseen!) future business needs at reasonable cost.
This describes the expectation my managers had of me at every software job I've had, and I've been doing this for a decade and a half
It's definitely not a new thing since LLMs came around, if that is what you were implying
It is on a scale that it is required now. Previously you could say "it'll take me a week to decipher the mess", now they can just say "can't you use an agent to make it fast?".
I had the displeasure of working with those types. One of them replies to any question or challenge to a technical problem emerging from the PRs they posted with variants of "I've worked here for over a decade, this is how we do things". And then proceeds to argue things like defensive programming is a code smell because it means developers don't trust themselves.
I cannot envision any healthy, effective engineering environment where developers don't periodically switch between projects.
The vibe coders have a key advantage you don’t: they don’t give a fuck.
They blow through a task and move onto the next one. Management sees this as progress, and the vibe coders are rewarded.
When shit breaks later on down the line, and fires have to be put out and things rewritten, the vibe coders do NOT get the blame. They do NOT get punished. Most engineering teams operate on a blameless culture. If code was approved for production, then it should have been good enough. Vibe coders will keep on doing what they do, and skilled experts will be left cleaning up their messes.
For anyone who actually cares, it’s over. You are not steering development anymore.
This hasn't been the case for at least a decade. Long before LLMs.
We've had plenty of technology trends in the past that have promised faster development but has later turned out to have problems. Organizations that stick around learn lessons about what works and what doesn't.
If in a year's time organizations aren't feeling severe downsides from all of the unreviewed vibe-coded junk they put into production then maybe the vibe-coders were right. I'll believe that when I see it.
It seems you are not understanding that the reason all these "rules, best practices" had to be created in the first place was the fact that your average old times developer was churning out shit code and weaving spaghetti just as hard as today's vibecoders.
Those "rules, best practices" spawned from the same evolutionary pressure as today's instruction files, skills, custom agents, etc.
Why do you think one of the first AI features rolled out by GitHub was the automatic code reviewer?
You guys are talking as if everyone working on software before 2020 was this immaculate developer with pristine sense of architecture and style. No, they were not.
To your last paragraph, I never say that nor do I imply it. I find that as a pretty disingenuous interpretation of what I said actually. The practices I mentioned were derived from hard learned lessons and designed as a means of mitigating the human tendency to write bad code.
The vibe coders aren’t “right”, they just get lucky.
Here’s a secret: I haven’t really bothered reviewing any PRs since September of last year or so. I just click approve and don’t even read it. It has been way less stressful for me.
Do bugs get through? Sure. But someone will just come in and vibe it out anyway. And I have yet to see a vibe coder or anyone who approved their flawed work get any repercussions. So yea, it doesn’t matter.
No one’s going to come after you asking “why did you approve this shitty PR?” And if they do you can forward it to the author and ask why they wrote a shitty PR. But that just doesn’t happen. It doesn’t matter.
This is a complete unrealistic assessment. Who do you think vibecoders are? They are yesterday's software developers using today's tools.
The people who manually write their PRs are also not giving a fuck when they break production code with spaghetti code that later has to be thrown out and rewritten. They are the same people.
The key difference is that now their output volume is much greater, and they iterate much faster. They roll out plenty of bullshit, but it also hits the fan much faster and triggers fixes at a higher rate.
People hate on vibecoders because they do exactly what your average developer does but at a much higher rate.
Now with LLM tools, what you got is a slew of projects their creators aren’t even interested in. It’s theater.
This weekend I'm playing with a SwiftUI MusicKit player (everything I'm doing lately has been Swift/SwiftUI, itself a radical change from just a couple months ago when everything was a TUI, and then a few months back from that and all the way back to 1993, when everything was a CLI) with a Responses API hookup that turns the player into an agent, with tool calls to let the model see what I've been playing. "Keep a continuous queue of music playing while I'm working in the wood shop".
Worked a treat. I'm genuinely interested in where I can take this. I have a real problem, one that's been annoying me since ~2000, which is that I "own" a lot of music but find myself stuck in an epicycle of the same 200 songs. Problem solved-ish. I never, ever, in a million years, would have built anything like this before.
It's really hard to sell me on the idea that nothing profound has changed here in terms of the projects we now pick up. Go build an operating system. I'm serious! Claude will practically one-shot it. Mine has smoltcp hooked up to a Rust virtio-net driver Claude pulled out of its butt.
> I have a real problem, one that's been annoying me since ~2000, which is that I "own" a lot of music but find myself stuck in an epicycle of the same 200 songs.
What’s the algorithm there? How is it different from queueing up your whole library and shuffling it?
> Go build an operating system. I'm serious! Claude will practically one-shot it.
Why would I want this? If I wanted to learn how an operating systems is built, there’s xv6 and the OSTEP book (and I’ve already gone through both) And I’ve been going through OpenBSD code, for a few questions that I had (usb audio and related code, usb mass storage and related code,…). Why would I ever wanted a generated project when there’s plenty out there to learn from.