33 comments

[ 2.7 ms ] story [ 55.1 ms ] thread
Once upon a time there were engineers that used software. Just like any other tool, and usually in combination with electronic, electrical and mechanical equipment, all of them being very well aware of the laws governing it all.

But it was so great as a tool that some engineers didn't want to deal with the burdens and limitations of the physical world, and started focusing on software more and more.

Then the software engineers came, for whom the physical and mathematical aspect of the whole thing was just a distant history lesson (and preferably a problem in someone else's computer).

And after software engineers, the only constant in the entire ordeal will remain: engineering, in a shape or form that very likely nobody can predict right now.

I really love using AI to code but more and more I wonder ... Are things really that different? So I guess I'm the business as usual type.

I think on the frontend side we're going to see a lot more scope for teams.

On a backend infra side it seems as hard as ever. Still have to think really hard problems, think deeply about data structure and flow, and deal with second- and third-order effects. Or even harder because the models like to confidently lie.

The harder question is how we train people but that doesn't seem insurmountable either. Most of us cut our teeth as junior engineers somewhere, implementing tasks that Claude can now do without breaking a sweat but was that really the most efficient way to train and learn?

I've been thinking about this since ChatGPT arrived.

My thoughts are distilled in a single page:

https://devarch.ai/trio-paradigm.html

I doubt we will ever need a large team to build software again. PMs will be fractional. Product owners and subject matter experts will become more valuable. And engineers that have deep experience with things like Domain-Driven Design will thrive and vibe coders will eventually be shut out of bigger roles.

I've definitely noticed a distinct lack of pride now that Claude Code is writing 90% of the code I'm delivering these days. For simple problems (which most are) it works well enough and you are definitely shipping code faster - and with actual test coverage to boot. But it just doesn't feel the same - there's little craftsmanship and honestly it's boring as fuck. You spend a lot of time setting up guardrails and having it produce plans that you then have to refactor multiple times. It's impressive that LLMs can do this, but it's not particularly enjoyable. I guess I was a "writing code was the fun part" guy.

Semi-related, but I really want to see the long term maintenance outcomes of all code being produced by these software engineers that were apparently just closeted project managers. I feel like having 50% of the engineers in this industry just telling Claude Code, "yeah that looks good to me" 150 times a day is going to result in an incredible amount of software rewriting.

You're describing the same alienation of labor Marx identified 150+ years ago. It was only a matter of time before it caught up with our field. Someone who used to make their own clothes, from planting the cotton, to picking it to turning it into thread to weaving the thread into fabric to creating the piece of clothing felt a LOT less pride in their work when it was transferred to a factory line or automated loom.
If you don't have pride in what you are making with AI, you will let a ton of bugs through. Likewise you will ship bad architecture.
I've been both types on and off and on for my whole career. At times, very engrossed in the technology itself - but I got started because I needed tools for my job that didn't exist so I learned how to build them. I've also developed and maintained open source software - some of it very much for its own sake as a technology - some of it quite utilitarian.

Understanding of product and business has always differentiated me though, and this is why I've never really stressed about any of this.

Another thing I've noticed - most developers are really bad at reviewing code - whether AI wrote it or not. Its really hard to make your brain sink in deep enough to really evaluate what you are looking at. I think a lot of developers never - or almost never - find bugs based on code inspection alone. Once they are written - there is often no other practical way to confirm that tests actually test what they claim to other than inspection. And bugs in design are still very costly in this new world.

As long as any human still has an edge in any aspect of the software development process - people who can force themselves to really think through proposed designs, test plans and cases and code will be really valuable.

Nothing. There will be more of us than ever as the amount of money each engineer can generate goes up. I’m not sure why everyone comes to the conclusion that there will be less engineers as productivity increases. We aren’t that expensive relative to the value we generate and AI, when wielded by an expert, will exponentially increase the amount of return a single engineer can generate.
They're going to be overworked.

In the old days we programmed systems by literally wiring them. There wasn't much work, only a few "programmers" were employed. Then somebody came up with Punch cards that was much more vision than wiring the systems directly. This opened the door for a lot more people to use them and now programmers were busier.

The punch cards didn't scale either so eventually we created panels with buttons so we could type the programs into the computers. That was more efficient and now all the sudden it lowered the bar entry and more people who are employed and doing the work.

Assembly language to machine code compilers to assembly language high-level languages and LLMs.

Every time developing software gets easier, it only increases the amount of work required. I'm busier today than I've ever been in my entire life.

What's going to happen to software engineers? They're going to be overworked and they're going to be given more work and the cycle will never end.

The people who own the tools decide how the productivity gains are distributed. The workers could produce the same output in less same and go home earlier. Or the capitalists could keep the worker there the same (or more) hours per day and capture the extra output as profit.

Under capitalism, the choice is always the latter. You correctly identified the pattern that Marx described over 100 years ago. The capitalists own the tools and control the conditions of our labor as software developers. They extract that productivity gain as surplus value, and will never choose to willingly give us more leisure time.

But has software engineering really changed that much? I've barely had any regular fulltime work experience most of my career has been contracting, so I’m not sure.It seems like the perceived change varies depending on the environmen

What I don’t get is using AI agents feels basically the same as what I used to do with legacy codebases of 100k–200k lines—understanding the codebase and making partial fixes or adding features. To me, it feels like nothing has changed.

Most of my career has been about finding parts that won't break within the overall code structure—without necessarily knowing the entire detailed specification—and adding features or fixing bugs there. So I feel like it's no different from finding and fixing small issues and bugs in a large codebase written by AI.

Of course, when delivering a solution that's 70,000–80,000 lines long, there is a change things that used to rely on templates and CMS tools can now be created more diversely using AI. But aside from that, I don't think things have changed as much as people say. It might be different for those who build things entirely from scratch with AI, though.

My code writing ability has declined, but I'm not really seeing a dramatic change in workflow

Now I work with code written by AI, adding features and modifying it… Most of the codebases I’ve seen were bad anyway—there was no good code to begin with. When coding with AI, I split tasks into P0, P1, P2 based on importance. For P0, I write everything myself. For P1, I write the draft and AI implements it. For P2, AI implements everything. For P0, I only handle things that involve responsibility, like payment logic or login logic.

I don't participate in open source, so I don’t see big changes. The only thing I notice is that AI speeds things up a lot—for things I used to understand by reading documentation and examples, now I can generate them much faster. Personally, I wish open source projects had more simple, short examples in their code

Four day working weeks would be nice.
I really liked reading through the Mars trilogy. It imagined a world where AI is used for fluent effortless translation - local languages get a renaissance since now you _dont_ need a lengua Franca, everyone just speaks what they like the most, and can understand everyone else. Much more “flavour” to human interaction.

Also ai makes things just resource constrained, not labour - whatever you imagined, you could make happen, just needed to “talk to an ai” about it. Lots of terraforming Mars / Venus in that book were imagined like that.

But it also analysed the social / political / behavioural aspects of it. Places that had to preserve old power structures - aka US/Europe/China - got engulfed with mega corps controlling everything etc.

But Mars - where people had enough freedom to imagine something different, came up with political/financial structures to incorporate all of that, and thrived.

I think it tried to play the card of “if US was being created right now - what would its ideals be” If you had a huge tract of land that was “free” and nobody (powerful enough) claiming it, and a population that didn’t yet have strong allegiances and could be persuaded to band together, what would AI, tech and all these years of progress allow us as humans to achieve politically.

Which also makes you feel kinda sad for the US in that world - it is the old rusted power center that can’t innovate and is stuck in the past…

Now it’s only sci fi of course, but it was quite interesting to imagine a world where AI gets smarter and smarter but never reaches that “sentient” threshold. I think the whole trilogy aged incredibly well all things considered.

Pay increases and red carpet rollouts along with your choice of fruit or candy basket.
LLMs have taken much of the enjoyment out of coding for me, but I don’t think it has to be that way. I hope that as an industry we settle on LLMs being more like tools than human assistants. I think most of the engineers at my company are using LLMs as human assistants- most of them have agentic workflows set up and have premium subscriptions to Claude AND Gemini AND ChatGPT. Many have local LLMs running on their company MacBook Pros, but they can never manage to describe to me in plain English what those local LLMs are doing. I would compare local LLMs to Raspberry Pi clusters. They’re neat, and technically they can do stuff but they are incredibly impractical. I want so desperately to have the power of Claude Opus running locally, but we are incredibly, ridiculously, extremely far off (benchmarks are often misleading and nobody likes to talk about the paltry tokens/s they’re getting on their home rig).

So the problem for me is that I’ve noticed a trend with my coworkers- they usually don’t have a formal CS background (e.g., Comp Sci degree), their resumes are unimpressive, and they have personal websites where anyone can download a copy of their resume. I haven’t seen this at any previous job. It’s just weird, man. Anyway, so my problem is when they are purported to be the best of the best at this company, and they’re chugging the LLM kool-aid, I’m struggling to figure out whether they’re really ahead of the curve and getting the drop on the rest of us, or they’re doing basically no work and waving through each other’s PRs with little to no oversight on what the LLMs are writing. The bush league nature of many of the bugs I’m seeing going all the way to prod makes me think it’s the latter.

Meanwhile, these guys and their teams are completing an absurd number of story points each sprint. My team is dead last (and coincidentally we’re all pretty anti-AI for writing code).

I’m waiting for the other shoe to drop. I’m waiting for the C suite to call our project a failure and lay everyone off. The product generally works, though I think if the devs were truly rockstars, things would be much smoother. It seems like LLMs are letting middle-of-the-road or mediocre devs appear to be rockstars purely on output speed. Nobody in this org cares if the output has 4x the bugs it should have, just that it was completed quickly.

The main issue I think is that nobody- including the rockstar tech leads- knows how the system works. They don’t know the code. There’s a bug and it takes forever to track down. Don’t ask about unit tests.

I think in a perfect world, these LLMs are treated like another tool rather than another person- meaning you and I still write a large portion of the code, and we read and understand every line- especially the lines generated by LLMs. It’s still a huge productivity multiplier for me to not have to remember how to do mundane things like write out arrays into CSV files- before I’d find a close implementation on StackOverflow and tweak to my needs. Now I can just describe what I want the CSV to look like and Claude Code generally gets it right on the first try.

Software Engineers, like all licensed professional Engineers will be just fine, as AI can't assume liability, nor be professionally licensed.

Programmers, on the other hand have a lot less leverage to bring to bear.

Of course, the above assumes that the job cuts are actually AI related, and not just cover for having to fire people because ZIRP (Zero Interest Rate Policy - aka free money) is over.

>after writing all this, I think these categories are a lot more about "what got you into this" rather than what you actually end up doing in this space.

>Nevertheless, my point here was to show a few of the ideas and directions I've been considering, and I'm keen to hear from others what you're thinking about too.

I decided to study computer science in college as a hopeful 18 year old who wanted to learn how video games work and maybe work for a development studio. I needed to find a job right after college, and I ended up going the full stack route. 10 years later (now) I'm working remote, making decent salary, but never fulfilled my original purpose for studying computer science. What's gonna happen to this software engineer? Anecdotally, I'll ride my IT job as long as I can while using AI to learn about game development.

Writing code by LLM feels like management, or tech leading a project.

It's tiring in a different way, but without the flow state or "high" of solving a particular problem in a clever or intuitive way.

Some days I enjoy shipping a change that would never have been greenlit for the sprint points it would have required, other days it's like herding cats and I'm tired with nothing to show for it.

why do people forget so quickly that you can just code without LLMs? And be hugely impactful? Like in 2020 i coded better shit than my principle agentic engineer

go do a good job. it's increasingly rare nowadays.

the frauds are growing.

same thing that happened to translators. they are still needed, just several orders of magnitude fewer than before.
> they don't need you but you still need them.

I can see very few reasons why AI couldn't replace their expertise for all of us non-experts, the same way it did for software development.

Any sufficiently large (preexisting) codebase has subtlties and "load bearing" bugs that allow it to function.

In my personal experience, the vibe coded solutions are incapable of delivering "safe" changes outside of anything trivial without breaking something. Folks now just seem to think this is OK? The result is software like my password manager and banking apps no longer reliably work. The trade offs (currently) just aren't worth it imho.

Maybe once we get context windows in the 100M range these systems will handle large scale (and distributed in my case) backend systems just fine. They most certainly are not at the moment, at least not to preexisting backend software systems of modest complexity. Not even close.

I'd say it very much depends on software focused the company/industry in question is.

On the lower end, there are a lot of companies whose sole purpose is to build websites for other small/medium sized businesses that don't care enough about tech to pay for a full-time engineering team.

For those companies and developers, I suspect the increasing rise of AI will be a bloodbath. If your whole value proposition is "we can build your website using WordPress/Squarespace/Shopify/[CMS name here]", then AI can basically do about 95% of your job. I suspect a lot of these companies are going to shutter when clients take the work in-house due to AI, and many others will probably lose about 90% of their employees due to AI solutions being generally 'good enough'.

On the other hand, if your company is tech focused and needs to implement more complex functionality as a selling point, then there'll still be a place for software engineers even with AI. This is where the engineer as pseudo project manager thing comes into play, and where the actual coding side of things is probably going to be limited to things the AI can't implement properly.

Both situations will probably see a significant drop in the number of software engineers employed there, but the latter feels like it'll still have some room for a career.

I think "don't care enough about tech" is a mischaracterization. Software engineers are EXPENSIVE and many companies just can't afford it. Personally I think AI unlocks a ton of opportunity, because things that were just not possible due to the high salaries (justified, of course) of software engineers are all of a sudden very possible. Maybe these small businesses will now be more likely to hire a fresh grad who can not only build them a website in a couple weeks but also a ton of other useful internal software.
I think AI will make software developers and system administrators a necessity for many more companies, because they'll have AI carry out other jobs.

Given the quantity of such companies that exist, I'd expect a lot more jobs for software devs. Somewhat different, sure, but not fundamentally different.

It will be like offshoring, with the difference this time around there is no team on the other side of the planet getting the jobs.

The few lucky ones to stay employed, get to be promoted to technical architects, and everyone else whose passion was equivalent to brick layers has to find something else where humans haven't yet been replaced by robots or self service machines.

When each team member gets more productive we're not doing e.g. 5x more output, we're doing more with less (team size).

This is a thoughtful article, but I think the axis isn't between builders and algorithm researches, but between craftsmen and results-oriented builders. Both want to build something, but the craftsman cares about the quality of the result (usability, maintainability, code quality, UI polish, etc.) while the non-craftsman is happy with something that works, even if some of the corners are janky.

Or, thinking about Windows and macOS in the Jobs era, perhaps the difference is more between the quality of taste. Microsoft focused on quality code, and came up with COM, architectures where an instantiable button is 13 levels of inherited classes, and things like DirectX, where the architecture is clean and extendable, but forces every developer to do things like allocate their own @#$! framebuffer. High level of craftsmanship, but poor taste. Jobs tended to focus on the user experience and had good taste, so the results were generally pretty good, but I got the feeling that the code wasn't as much of a priority.