Six months of writing code exclusively with agents(blog.exe.dev) |
Six months of writing code exclusively with agents(blog.exe.dev) |
Setting aside the "capability" of the tools, I knew it was the wrong direction after a couple months or so in. I specifically remember during a large feature implementation running out of tokens for my 5 hour window or whatever, and I just couldn't continue on my own. Mostly due to laziness (I'll just wait till tomorrow when my limit resets!), but I also picked up on my first big whiff of skill rot / atrophy brewing, and that made feel uncomfortable.
I just don't see this fully agentic approach going well long term. Talk about the ultimate dependency!! If the lights are "turned off" for whatever reason - outages, cost increases, or the agentic velocity finally reaches a complexity tipping point and you've lost control and understanding of your system to the point the agents are making things worse, whatever it is - do you really expect to be able to turn back the clock and step in to code at the productivity level and output you used to when you actually... wrote code?
Agents definitely run amok on code bases, create bloat, needless complexity, etc. However, they enable many people to do so much more than they could without them, at least in the moment, that they're not going to go away.
At my last employer we were contending with real customer fatigue and attrition. The application was changing so rapidly that it was overwhelming both our ability to uphold quality standards, and customers' ability to keep up with the feature churn.
Or, to put it more succinctly: nobody actually wants all this slop.
Facts. For me the bigger the gap between what i saw in my head and the speed with which my fingers could physically make it a reality the more stress i would feel and some marathon coding sessions would end w my back all messed up just from the tension
If the author can't bother to write the article himself why should the thousands of people who come across this post bother to read it?
How do I know where the author's own thoughts end and AI's assumptions about his thoughts begin?
Then again people typically don't read past the title so I suppose it doesn't matter what the content of the article is, as long as it gets people talking and directs traffic to their website.
Its like I'm reading a claude chat response but worse in every way. Its such quantity over quality nonsense. On the off chance it isn't obvious from the get go and you learn its AI written halfway through you feel taken advantage of as you assumed you were reading someone's actual thoughts. But instead you spent several minutes reading something thats just some generic LLM output.
For me, this means the checks have to be more than just "I looked at it". There are two things that happen before I ever see it: first, as others have mentioned, I have a model from a different family review it with well-defined criteria. Same-family reviewers share bias, so it must be a different one. Second, I have a core set of deterministic gates (like lint, but also unit tests) that must run. In either case, failures go back to the coding agent.
And only then do I bother. But I really don't read everything. If it is bog-standard CRUD operations, the agents are pretty good at that, especially if they are using mature packages. I focus on critical things, like how it enforces permissions.
This works well for me, though it leaves one major issue untouched: whether this is worth building. The agents tend to be a bit overeager, so I have to do a lot of work up front to make sure the output will add value. The gates can only check the artifact, not my intent.
Software engineering is dead, long live software engineering!
I don't think it'd take more than a few weeks for a high schooler to learn how to prompt well.
Devs are notoriously bad at estimating tasks.
First, it takes me ages to describe the task properly. All these clear success criteria, well, instead of writing code from a clear spec in my head, I’m writing tons of prose, and trying to make it unambiguous. I’m programming in English++.
But then, one time in 5, it produces something that kinda works. Maybe not perfect but good enough. Two times out of 5 it kind of sort of looks alright, but actually ignores 80% of the spec, or pays it minimal lip service in the comments.
And sometimes, maybe a bit less than 2/5, it just completely diverges into total shit. Starts writing scripts that load the ast of the main script and pickle it then serialise to base64 for no good reason. Encode some stuff in strings then check ord(string[i]) repeatedly for string comparison. Eventually runs out of context and develops the LLM equivalent of severe dementia.
I truly cannot reconcile my experience with people who seem to say “hey computer write this” and it’s a good use of their time.
Maisem Ali writes about how they have not stopped engineering despite handing production of code over to AI. I think that's an interesting perspective for a few reasons, but most of all, I'm not sure I agree.
First, we see a prime example of how that can blow up. "botd died this month. It crumbled under its own weight." It's hard to imagine how an agent harness (or is it an overlay on top of other harnesses?) could crumble under its own weight from sheer technical complexity. What makes a tool like this "crumble"? If properly architected, it seems that any outside change could be adaptable. Failing tests could be fixed.
This AI coding evolution has given us the ability to spin up prototypes we don't understand the inner workings of, but I believe for anything of value (and, I would argue, botd appeared to have value to Maisem) we should at the very least understand and influence the architecture and engineering of what we're building. If Maisem had done that for botd, it would not and _could not_ have "crumbled under its own weight". Whatever outside influence required change within botd would have been manageable.
Second, the off-loading of the production of this article indicates to me a lack of respect (with no offence to Maisem, because this is what much of the industry is doing today) for the value in thinking through the writing process. There's a lot that I've learned personally about software I worked on that only came to me through trying to write explainers. Taking a step back from the software we build and looking at it from a birds-eye view, to share how it is constructed or how to use it, helps develop our understanding.
Maisem's article is already very good, and I hope that is demonstrative of their own writing! I would read more! But I want to read words written by a person for other people. AI can help edit, it can help us build ideas, but in code and in our written word, AI should not be _the author_.
I'm predicting a Docker for AI Coding. There really is a ton of stuff you need to set up to do AI coding/vibe coding in a way that's safe, has good results, and is fast. You don't just need a dev environment, you need a whole SDLC; codified good engineering decisions, test framework, credential management, an interactive UI and notifications, guardrails, a "waterfall" of progressive design/build/test, context management, and much more. It's too much for people to put together themselves without tons of time and experimentation. Same as containers, which is why Docker came about: to let an end user do complex things in an easy way.
AI coding is like a self-driving car. Making the car move is easy; making it get you to the destination you want safely is very hard.
For a lot of small changes, I am waaaaaay faster than an LLM.
You serve no purpose here. The AI will soon be able to prompt itself, and it will be better at system design than you.
Good job at making yourself redundant.
e.g. I can ride a bike for free compared to driving a car where I have to pay for gas.
And their are pros and cons to both.
e.g. bikes are easier to park but not great in bad weather and vice versa
In a car world, riding a bike is free but acquiring a bike is incredibly expensive because they are not mass produced and are instead a luxury that rich people pay for to get a single bike manufactured for them.
The equivalent is that in the future, most open source dies, and the little open source software that remains is low-level, systems critical. And so, if you want to write code, you must first use an LLM to make you a compiler for your desired language that works in [insert future pc architecture] as any of the old 2026 era compilers stopped working decades ago. If you don't have enough tokens for that, tough luck.
After reading this blog post for me, Fable-1337-B4242 asked me if I also wanted to create a load-bearing plain text website like exe.dev using agentic forces.
That all reads to me like: The key here is: "Burn tokens as money in a bonfire, pray you typed in the right magic spell (prompt) and the ingredients (context) in the potion were right, toss away the failed elixir of life".
Instead of writing code and refactoring yourself and gaining an understanding, you're hoping that a slot machine will get luckily get the statistics right to put up code that you already need to read again.
> It’s the same loop that taught me to code, moved up a level: write, run, fail, fix. I used to iterate on code. Now I iterate on prompts, designs, whole features. A rewrite that used to cost a week costs a conversation.
And also costs you skills atrophy and however much tokens will be. Not to mention the negative externalities of using LLMs (massive increase of fraud, of disinformation, of rocketing prices in memory and in turn all electronics, massive use of energy that consumers have to also then pay extra for, environmental and noise cost of using on-site turbines, local destruction of water resources for the local community).
AI agents are just software, so the only way to understand them is trial and error?
Every few months it feels like I have moved further up the chain. Now I don’t even look at a PR until it’s been coded and gone through at least 2 AI reviews (always different families). Code is truly cheap. I can have the pipeline produce an entire feature as a thought experiment just to see if the shape is the right fit for the codebase. People like to throw the slop term around a lot. It feels like the opposite of slop through. I can have things written and rewritten as many times as it takes until I’m happy with them.
The weakness I see in this is there at the end. The agents never want to throw things away. They just want to keep adding and adding. I think this is my real value in the chain. That intuition built up over years that says this isn’t right yet or that little tingle in your brain that you’ve laid a landline that you are going to step on in 6 months.
This should be extremely intuitive. We know this already. There has always been a divergence between product value and code quality. How many codebases that are widely used are kind of a mess inside? Pretty much all of them to some degree. This is a basic reality of software engineering. Conversely a useless product could have the cleanest code in the world.
Some slop accusations are fair. Others are people essentially expressing that they dont like shifting to a product mindset.
I dont have your whole pipeline but I recently took a step back and thought about how amazing the AI is. I recently gave Fable a nice, simple open source TUI app with some Claude Design artifacts for a UI/UX facelift + some new complex feature requests and it just one shots the entire thing in 20 minutes. It works great and looks amazing. It's significantly better in terms of UX and functionality than the original. I did this on the side with about 15 minutes of active attention while I was working.
> Instead of waiting, I spun up another agent to do something else. Then I did it again.
> I wasn’t intentionally building a parallel system. I was just filling the time between tasks. I have ADHD. I got distracted.
I probably have ADD or ADHD and this feels "great" at first b/c you can just jump back and forth between 2-4 agents as they need input from you.
But I noticed:
1. I was EXHAUSTED at the end of the day
2. A lot of what each agent was doing I could do faster myself. Yes, if I do 10 units of work and 4 agents do 3 units then it's faster. That being said, sometimes all of the agents pick the dumb/slow path and now it's 4 agents times -2 units
> Having other agents review the code worked surprisingly well. They occasionally caught real bugs, and it was cheap enough to run several reviews. But I couldn’t merge something just because the agents approved it. I still had to understand the change. I was still responsible for the code that got merged.
My personal opinion is that LLMs have:
- 5x increase in triaging/debugging b/c they can read code WAY faster and make connections really quickly
- 2-3x writing code if you ALREADY have great, rock solid unit tests etc
- -1x to 1.5x improvement in writing greenfield code where you have no tests
That last one is b/c you are never 100% sure that the test is doing what you expected or the LLM is "hacking the test" (unless you REALLY read the code).
I think this disparity in performance across different sub-domains of being a SWE/SRE is why you get so many different opinions on LLMs
I met a few architects/team leaders who wouldn't write almost any code and just technically oversaw things before LLMs got popular, obviously they were very experiencied.
What you have to ask yourself is whether you could oversee a swarm of bots(or people) if you didn't have any coding experience in the first place.
A lot of HN users seem to be, in my opinion, too dismissive about the complexity of creating software. It's true that we don't have to develop in assembly anymore to be a good developer and with time the general level of the entry abstractions that we deal with rises, but, in my opinion once again, it will never change the fact that you need a high number of hours of exposure to something in order to be truly competent to a professional level.
that's the moment I thought... is this all an advertisement?
It seems that all this knowledge would be useless with a model update...Good for the AI companies though. More tokens as users like this come upto speed with the new models, which they now are totally dependent on...
Because, if you didn't like writing code, and is now used to agents writing code, good luck going back to writing code by hand...
“But here’s the twist: that search I described earlier was never sent to botd. All the history was in SQLite, so I pointed another agent at it and got the analysis anyway. The tool died; the data didn’t.”
If I had more time, I would have written a shorter letter…
To me it just feels like you want to be a manager not an engineer
This is like if a plumber said. I no longer do any construction, I just tell people what to do. Then you probably aren't a builder anymore, you are a foreman or a project manager.
I think your job as an engineer is to know the codebase and how it was engineered
Can we stop posting obviously slop articles? If you can't make the effort to write the article, I'm not going to make the effort to read it.
AI is completely sucking the enjoyment out of my work.
It's like they invented a robot that can build whatever you want out of Legos. You'll never have to touch your Legos again! /s
Edit: I recall reading somewhere that John Carmack doesn't care about which editor he uses because typing was never the bottleneck. Admittedly, he worked on some really difficult problems.
I always found that the act of chugging the code helped to refine my thoughts along the way, including the big picture of it all. I've adapted in that I still have agents do most of the heavy lifting of code writing. But it still requires me to be invested in the details, which can't happen at the scale people discuss when they're talking about full on agentic development.
1. https://github.com/matthiasn/talk-transcripts/blob/master/Hi...
I often found myself impatient in getting something I knew would work to actually work, and it was always due to the tiresome fractal of complexities that any non-trivial task involves, like looking up an API or working around the quirks of some dependency.
On a related note, this is also why I find AI-assisted coding so efficient: I have the code visualized in my head to a decent level of detail, and so reviewing the AI's output is a breeze; it's like doing a semantic diff of what I had visualized and what it produced, and so any issues are glaring and easy to spot.
The research, the understanding, the planning, the design, all of it's iterations, the testing, all of it's iterations, debugging etc.
'I see the code and need to get it down' is a key thing obviously but a smaller part.
With better abstractions, we'll be putting 'architectural ideas' in our head, instead of algorithmic.
Or, consider what information is driving your extremely detailed instructions and give it the raw source if you can. Meeting transcripts, messy notes on some adhoc conversation, etc.
The more you try to micromanage it, the more impossible to work with it it is.
Of course not every situation calls for just giving it high level requirements. But not every situation calls for trying to define how everything is done yourself either.
It didn’t go well.
These issues are usually in really tedious places that I didn't bother to describe what to do to the agent
Right but that is someone else's problem. Or if that's something you will be call upon to answer, "that's just LLM did" is a fine answer in most companies where AI use has been mandated.
I'm pretty sure that's the dream goal of any plumber. No one "plumbs for fun". No one wants to truly do the actual thing, they want the money that allows them to do whatever they want. It's just that doing the actual thing is the only way you can get the money at first. And being good at doing the actual thing and enjoying doing the actual thing makes doing the actual thing bareable or even fun while reaching your actual goal (the money). As soon as you can free yourself from that you will.
Joe Biden used to say this all the time - that a job is more than a paycheck, it's an identity and a sense of purpose, often a big part of our social lives as well. Or if you prefer the other side, Trump likes to say that coal miners don't want to learn computers, they want their coal mining jobs back.
I like to make computers do the things I want. Since I was a kid, the satisfaction from programming or any sort of "computer engineering" (using the word engineering VERY loosely here) is in making something specific happen.
Sometimes, that means understanding the correct data structure to use, picking the right algorithm, and other computer science-y things.
Other times, and more often (for me), it means death by a thousand papercuts in managing third party dependencies, boilerplate, and other tedium and minutia.
I'm not someone who is "proud" of barely coding anymore, and I'm not entirely sure how I feel about the "structural soundness" of using LLMs this way (most of my coding is personal/hobbyist work), but I can confidently say that I don't really code just because I love coding, at least necessarily. I like making stuff.
But if you have been hired to a position that requires reading and writing assembly, then I would hope that anyone applying likes to do specifically that. I don't want to solve problems at the manager level, I want to solve problems that require coding
A manager has access to a larger, sloppier, and more powerful API than an engineer.
And then there is the level of understanding gained of opening up an editor and trying to write a Quicksort function in Go or C++ or Python or whatever.
I wouldn't consider the latter to be "laying bricks".
Okay. Is that job going to provide a competitive salary, with good benefits? More importantly, is it going to be personally fulfilling?
Software developers who have adopted agentic coding are worse than class traitors. They are actively sabotaging the entire careers future viability, and have made me ashamed to think anyone in this industry was worthy of the title "engineer".
"Weavers who have agreed to tend a fourth loom are worse than class traitors. They are actively sabotaging the entire trade’s future viability, and have made me ashamed to think anyone in this industry was worthy of the title “weaver.”"
"Handloom weavers who have adopted power looms are worse than class traitors. They are actively sabotaging the entire trade’s future viability, and have made me ashamed to think anyone in this industry was worthy of the title “weaver.”"
Tale as old as time.
I genuinely don't think you need much training for creating code any more. The skill can be offloaded.
I'm not worried for my career.
Note, people don't typically need to understand the architecture documents that the LLMs generate, and will certainly be filling in the rest of the gaps as new models come out. The function of design docs is to make the LLM ask clarifying questions and fill in the constraints.
The skill is really in manually testing before handoff.
It's a coping mechanism. Goal shifting to protect yourself.
For me, honestly, no. Once i have the solution i have the solution. The only people that care about how fast it gets published are the project managers at work, certainly not me.
And besides, writing it all out and confirming it all along the way seems helpful to me, it ensures i understood everything correctly and sometimes inspires new ideas as well
But I have more software I want to write than I have time, between my day job, my kids and family, chores, other hobbies, etc.
I had so many projects I wanted to do, but when I thought about all of the work that went into each one, I realized I didn't have time to do them and they were pushed to the back burner.
These last few months I have been able to get to so many of those back burner projects because I don't need nearly as much time anymore.
Unfortunately, most modern software development is atrocious, full of distractions and incidental complexity and tangential issues that are not conducive to staying in the flow. Latent bugs and dependency quirks and environment issues that force you into some irrelevant sidequest were the most frustrating. Like, this video is the prefect analogy for modern software development: https://www.youtube.com/watch?v=AbSehcT19u0
I do NOT miss that experience and I'm glad to let the agents take care of it.
Anyways, if being more capable than them is the bar you think you need to clear, I suppose you'll be fine.
I still stand by my statement: there's no deep knowledge needed to deliver most of the software we need today, just some iteration on prompts. And the AI is getting better pretty quickly. You need to be able to explain what you want, why the AI got it wrong, and paste the error you see. It takes some focused training, but so does being a line chef at a restaurant.
You're not making a point