AI is great enabler for stuff that you don't want to be good at, it cut a ton of chore type jobs out of my workflow, but for stuff you do want to get better and care for, it's both joy killer, and if you're not careful you will only learn how to prompt, not how the stuff works.
I love code as a craft. I love spending time designing the perfect abstraction. I love seeing it come together in the implementation stage. I love the troubleshooting process and the understanding that comes when you finally engage with the root cause of the issue. I love all of this so much that I ship little, all my time is spent in process.
I also love code as a tool. I love working tirelessly towards describing a goal and then watching it come to completion. I love knowing my projects consume terabytes of data and spit out useful results. I love seeing my assumptions on the outcome proved right or wrong.
Now I can do the latter without the former, and it leaves me deeply conflicted. A large part of me is more excited than I've ever been. Another part of me is quite sad, and this is unfortunately the part where my ego lives. For now, I keep it in check by asking the LLM to describe the pros/cons of alternative architectures. That way I stay learning about the products I create.
I've done a lot of functional coding in the past (in academia, in Haskell as a hobby, and Scala for a unicorn where I was an early hire.) This probably affects how I think. But I find it quite natural to organize my code this way. After all the fundamental data structures and the hierarchies relating them are what often determine core properties of your programs such as being CPU, Memory, or IO bound.
I also work as a pretty senior engineer and my tasks before agents were usually about leading a team to implement something. I would often do the v0 implementation to make sure we met customer requirements and then take a step back and help the team scale the service up. These days the team is a lot smaller and maybe just another engineer; the agents make up the rest.
So it all wishes and prayers? no wonder software quality is down.
Software is built on wishes and prayers. Programmers don't ship pixels to be installed in monitors, nor do we (mostly) work with compiler internals. We write a detailed set of instructions and hope that a bunch of systems we don't necessarily comprehend follow them well enough to get the intended results. It works because some folks got together and wrote down their wishes and prayers so good that others were able to understand and follow them later.
I ultimately think learning how other people structure programs is an enriching task and not one that should cause you to dig in and discredit differently-shaped approaches.
Learning from others is great. But there should be actually something to learn. When someone says
so long as you're not writing the code or specifying exactly how it should work.
It means they’re not creating software. They’re just playing with randomly generating something.A software is the recipe for some process. The code is the formal version where everything is exhaustively specified. Not thinking about the code means you’ve stopped thinking about the software somewhere and no longer can say if it’s ok or not.
Axiom: A software is the recipe for some process. The code is the formal version where everything is exhaustively specified.
P: Not thinking about the code
Q: means you’ve stopped thinking about the software somewhere and no longer can say if it’s ok or not.
To further go with my point, it's like explaining how to make a cake and you said that instead of a recipe, it's fine to provide just the name of the ingredients and a general instruction like: mix everything together and put it in the oven.I’ve been coding over four decades and it is clear to me that most programmers don’t know how the stuff works, and not just script kiddies but some PhDs I worked with.
For those who want to know how it works, LLMs are massive enablers. I’ve written so many debugging and inspection tools with an LLM; had a model explain the assembly language produced; had rubber duck conversations with it. I’m having such fun tbh.
You're saying that I must not be good in writing tests, irregardless on how I feel about test writing.
I happen to love the process of building software by coordinating agents. It’s an addictive form of flow state that I enjoy a great deal - similar to the flow state I get playing real time strategy games like Age of Empires. It’s a different kind of flow state than writing code, for sure.
But to say that the only people who enjoy building software in this new way are those who hated coding, technology, or problem solving is simply untrue.
I realized I most enjoy higher level problem solving but don’t really enjoy implementation. Like I enjoy algorithms, data structures, memory allocation strategies, SIMD optimization, etc. But writing the code, and debugging it is tedious and takes me out of flow.
And if I’m really interested in the project itself then the algorithms take a back seat and I enjoy the even higher level problem solving of building a cool project.
I don’t think it makes you lesser to enjoy these things more than literally banging out code, and hunting down bugs. Perhaps I’ve written enough code that I don’t find the same joy in that. Who knows.
If someone loves building technology products that doesn't mean they were "only in it for the money". Beyond just being disparaging for no reason, you're missing the path out of the depression-pit here.
If tech paid less, say minimum wage, they would all leave and none of them would ever tinker around anything in their free time. I’m not depressed, I’m just disappointed by how many folks are like that in this industry I loved.
You're certainly welcome to miss what coding was, but being rude to engineers who are trying to build businesses is just as ridiculous and entitled as this article is.
It's funny how people produce tons of code they can't even read and somehow feel like they "solved the problem". Do you feel like you built the shed when you hire carpenter and ask him to do it..?
And why school district need you when any highschooler can produce similar code..?
I don’t need to see why you feel the desperate need to larp as a technologist when you’re happy with letting an agent solve all the technical problems.
You only think it is rude because you have tied your identity to being a technologist when you are not, I’m just saying it like it is.
This is a false comparison. Agents cannot solve all the technical problems, so the entire statement falls apart.
Out of curiosity, when you take a bite of a burger do you call it a product?
When you watch a movie do you call it content?
And given that fast food is the pinnacle of sustenance as a product and Hollywood has been content-brained since 1977, sure!
You can feel free to cope by inventing imaginary bad guys. But the reality is that there are a wide variety of reasons people coded by hand. And people that are different than you aren’t somehow inferior or bad.
I love writing code, but I don't love every single part of writing code. In particular, I really disliked getting stuck on some irrelevant detail, some mysterious error that had nothing to do with my code (dep issues, OS quirks, silent changes, auth failures, researching alternatives), and spinning my tires, unable to work on what I wanted to accomplish. Often I never made it through the far side; I've got a project directory littered with half-finished projects.
Having an AI to figure all that junk out for me so I can focus on the thing I want to build is fantastic. I worry about losing the grip I still have, but for now I've lost some things I loved (a lot of actual code-writing, solving nice straightforward problems), but gained what might as well be superpowers to help with some real shortcomings I had. It's been a net-positive trade for me so far.
And none of my personal projects have made me rich yet...
In other words, people who just wanted to become managers.
At least I’m honest, I never cared for what my company does, I only liked the interesting technical problems it let me solve, and the high salarye it gave me, now I can only thank it for its high salary.
I enjoy what I do but I confess to being “in technology” because I need to earn a living not because it’s some sort of passion project. I think it’s pretty horrible to wish us all out of job so you can feel superior again.
Regardless, I wish you all lose your jobs to AI and be forced to leave technology and earn money elsewhere. I think it’s been a disaster to the quality of the technology surrounding us and the community that creates technology to have so many opportunists just in it for the money.
Why do they have to hate coding, technology and problem solving, that makes no sense. They just use coding agents to write the code for them to use technology and solve problem.
Let's not forget that there is this silver lining of the tech. We can be free[1].
__
[1] Requiring a one-time payment of about $200000 + a small gas turbine
The stuff I’m building is things I could only dream of before. With LLMs, I can build things in a year that would have taken me a lifetime before.
I venture to say that this number is small. Most SWEs get into it because they don't view writing code as a "burden".
The people who are "liberated" aren't the SWEs, it's the people higher up the ladder than the SWEs, who can't or don't want to be bothered with coding anymore. For them, managing a fleet of agents is easier than managing a group of SWEs.
I don't think it's fair to say that all SWEs swing one way or the other. I absolutely love the fact that I will never have to waste time debugging cargo culted, trendy libraries ever again while I am also sad I'll also never to get hand write elegant implementations of interesting problems ever again either (unless for fun).
I would be happy to keep writing code but I'm also happy to be liberated from the type of code I was often paid to write.
Agents help you bang out good code faster if you know how to use them. My relationship to Claude and DeepSeek is somewhere between an IDE, a coworker and a friend (I still have real friends don't worry).
I don't treat it as a world changing magic wand that fundamentally changes the way everything works. It's more like a fast forward button that lets me skip the boring part in exchange for some hand holding. No more dealing with syntax errors or finding trivial bugs.
This always read like
Writing sentences was the annoying part. The fun come from sharing ideas, optimizing for brevity, making the rhythm flow better and words more impactful, all things that are on the level of communication, and not grammar.
Then you start wondering about the actual level of education of the person and their claims about writing a nice novel.Code is formal writing. Expressing an idea in such formal forms means you have thought exhaustively about the evolution of the algorithm/process. If you’ve not done that, you can’t guarantee the correctness of that algorithm/process. Is it just toying around with an idea of software?
but most SWEs are being pushed to delegate the _thinking_ to agents.
so instead of "here's a solution to load this page faster that I came up with: X. Implement this in JS", which is along the lines of what you describe, most people are doing "this page needs to load faster, what's the best way to do that?" claude: "X". "OK, implement X." What fun is that? What's the point of developing skills and acquiring knowledge if you can't use them anymore. that's the loss.
If all you care about is having pages that load fast, then yeah, agents are great. If you care about being the architect who figured out how to load pages faster, then agents take the wind out of your sails.
In the corporate setting I think though it won't take a lot of time to reduce the layers and number of people that are required to run a software company. Either one becomes a more general work manager or obsolete I guess.
All of your potential customers are just going to vibecode their own software. In many cases they won't even realize that the software they vibecoded even exists as it will just be an invisible tool the LLM built for itself to reproduce a similar solution to a similar prompt over and over.
Once AI flattens out any company enough, the company itself no longer needs to exist, it can trivially be replaced by the model providers. Companies exist to be collections of skilled people with a common goal. When you don't need that, you don't need companies. The agents can work for your customer instead of you and nothing changes except who gets paid (not you).
There's a ton of magical thinking out there where people seem to assume AI will progress right up to the point where it is maximally beneficial to their job without replacing them. Keep huffing that copium, folks.
I've commented previously that there will be much more political interest in AI causing unemployment when the first CEOs are replaced.
That's going to happen. It's part of the "creative destruction" of capitalism. If AIs maximize shareholder value better than some CEOs, those CEOs are toast. They either get replaced in the same organization, or a new company arises and crushes them.
Just imagine what would happen if JP Morgan did this and the model decided it needs to dump their position in AI data centers. Or maybe it's a health insurance company that fires all of the claim deniers for being unaligned with Dario's ethics.
Because you are singularly right about the issue? Have some intellectual modesty, brother.