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.
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.Modern computing is an exercise in trusting abstractions and then zooming into the abstractions and figuring out what went wrong when something breaks. Just because I wrote a web route doesn't mean I've audited the code behind the web framework, the event loop, the HTTP implementation, the TCP implementation and so forth. By your argument then I've already stopped thinking about my software and can't tell you if it's okay or not.
I'm sympathetic to both the perspective of sadness from the loss of hand coding and the perspective of joy from working at a higher level of abstraction, despite its costs in understanding. It actually seems very simple to me to hold both perspectives within me.
Once that’s done, there’s a matter of accountability where you can report the issue to the people responsible for that. Then because they know their own code they can repeat what you did and try to find where things went wrong.
That chain of accountability is the main issue there. We still have tower of abstraction, but no one knows about their layers. Accountability is lost and with it the trust is gone.
I never care about code, whether you wrote the majority of it or it’s just a glue that hold several library. What I care about is that the semantics of that module that I interact or build upon can be trusted, and when something wrong is an accident and not a daily event.
Even when you’re writing an application and not a library or a platform, you’re not free to write whatever. Your users depends on you, and themselves may have clients that depends on them. Being cavalier about what you write is just recklessness and in any other (real in some countries) type of engineering, it would be labelled as malpractice.
Right this is the main difference between our viewpoints. I don't work on completely open systems. A lot of my life I've worked on closed platforms, cloud runtimes, a mix of work that's been in my control and out of my control. I've filed my share of AWS tickets but ultimately most of them ended up not fixed by AWS. I've made peace with not having accountability for layers of the stack and am comfortable assuming that there are bugs on the foundation that I have to work around.
> Being cavalier about what you write is just recklessness and in any other (real in some countries) type of engineering, it would be labelled as malpractice.
An old critique of software engineers that I've always found flimsy and find that Hillel Wayne addresses well: https://hillelwayne.com/post/are-we-really-engineers/
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 ... this conversation isn't really about you then, is it.
For example recently I did tiny little hobby project, taking metrics of ESPHome/homeassistant MQTT and pushing it into prometheus. Coded the main parts, told LLM to do the boring part of setting up test suite, guided it thru making tests, it worked fine, tested it, then told LLM to do another boring task, taking all the datatypes it support and unit conversions (which is hundreds).
I got to do all the fun design stuff, but had code review assistant that also did all the boring tasks.
It's like making animation but you only have to make keyframes and initial coloring, with AI filling the blanks, just cutting out the tedium
so it's just like making really crappy animation?
You're saying that I must not be good in writing tests, irregardless on how I feel about test writing.
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 are aware that the LLM (or anything/anyone) explaining stuff to you is just going to atrophy if you don't use it, so maybe you weren't actually learning but just scratching a curiosity itch.
On the road to wire heading.
I think the benefit is that now I get to choose what I want to focus my limited attention on; from a much broader range of subjects; with expert knowledge on tap. For sure, some of it was just scratching an itch. I didn’t waste much time getting to that point before I could go down another interesting rabbit hole. It’s just much more fun!
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.
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.
I obviously implied code related problems. I know agent can't change a diaper or born a child, lol
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!
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..?
If it wasn't hardest part, why pay so much to swe?
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...
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.
I wasn't "attacking your comment", just trying to get you to relate to me as a human being. But I should've known that would be a futile exercise.
I'm good at my job, I like what I do and I work hard six years into my career. I just don't go home at night and do it as a hobby too. I know there are people like you would like to see me kicked out of the clubhouse for having needs and pursuing a career in one of the few middle class jobs left that pays a living wage. Sorry I'm not cool enough for you.
https://geohot.github.io/blog/jekyll/update/2025/09/13/get-o...
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.
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.
"you need to improve performance of the graph especially rollover and highlighting it's VERY Slow there are too many updates"
In the past I would have cracked open a profiler, and spent a couple days probably tuning this thing. I probably would have gotten a big dopamine hit and felt really accomplished when I finally got buttery smooth performance.But I'm happy to delegate this task to the agent, because this is one step in 1000 steps I have to accomplish, and no I can't just tell the agent to accomplish them all from the start because I don't know where it's going. I'm very very happy I don't have to waste a day making the graph load faster, because I can get back to my real work, which is not making graphs load faster.
At the end of the day, solving that problem will make someone's use of my project a little better, but it's not adding value to anyone's life -- that's what the project is (supposed to be) for. In the past, it was those little problems and 1000s more like them that would derail a large project. Today, they are mere bumps in the road, so the large project has a better chance to come to fruition.
in this context, those are really 2 different things. what people are lamenting is the fact that "I built a career on building these skills because it's something I care about doing with my life, and now I'm being relegated to QA at best, or replaced at worst". That's completely different than, "I can now get my personal project out faster, or maybe create 10 personal projects, and can have the agent take care of the parts of the project I don't really care about doing (like improving graph performance) and focus instead on the overall design of the project, more features, etc.".
It's like going through med school and residency to become a doctor, and instead of practicing medicine, you're feeding prompts into an AI and passing on the responses. Sure, on you might appreciate not having to field medical questions from all your friends and relatives ("personal project"), but that's not your career.
I can appreciate that perspective, but at the same time: it's a job, the whole arrangement is you sign away your autonomy, you do what you're told, and people were paid more in one year than I've made in 5 for this. Now the balance has been disrupted, and that's a shame, but the gravy train can't go forever. Moreover, this particular job, software developer, has changed fundamentally again and again over the years, and those changes definitely disrupted people's careers, so although the blast radius is significant, this too shall pass.
And we're not exactly talking about doctor-level of training here, it was only about a dozen years ago that it was very fashionable to land a 6-figure salary at a top Silicon Valley tech firm after having only attended a bootcamp, for a job that was characterized as being a "code monkey". The whole thesis of the "Theil Fellowship" was that the job was doable without any formal education at all. At my institution, the CS major was the most popular because it was the shortest path to the largest salary. Now that equation has changed, no one wants to be a CS major, enrollment is through the floor.
> you're feeding prompts into an AI and passing on the responses.
Okay but is the job writing code or building software? A lot of people seem to think the job was writing code, and that's what they liked about it, but it was always the case that if you like your job it's not going to pay well. That software engineers were paid so well to do something they love is an aberration, not something to expect forever.
As a teacher, I definitely understand this. I love my job, doesn't pay well, and it's also changed fundamentally as well in the last year. So I empathize -- I used to grade student papers which was rewarding; then all of a sudden I was grading LLM output, which is not. A lot of my colleagues have complained endlessly about this, have made it their job to become the LLM "police", or have quit the profession entirely because like you said it's not how they started in this field. It's bleak.
But you can also adapt to the times. We just completed a module where students use AI to create games in Lua, and they made the best games I've seen in years, each one different and unique and fun. Before the class was "we'll spend 4 weeks and hopefully we'll get to animations if we're lucky". Now the final projects are all animated with interesting gameplay mechanics, graphics, animations, and they're all different despite them each using AI. I like this situation better.
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.
> A lot of people feel replaced now that the writing of code is being shoddily replaced by the burden of interaction with AI.
It's stupid.
Obviously this is not true for every SWE. A lot of people feel liberated now that the burden of actually writing the code is being replaced by molding it through the interaction with AI. I see people that struggle because they've identified with the writing code part a lot and that's gone now that the machine is doing it, I bet that's hard.