78 comments

[ 0.20 ms ] story [ 10.3 ms ] thread
> The bigger cost was the typing. Every time I wanted to build something, I could see the code in my head. I just couldn’t type it out fast enough.

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

Nice to hear others are feeling this too. I started using typing websites to improve my speed a few months ago. More recently I've noticed that I'm starting to make lots of typos and use sloppy language in general because AI still understands me. That can't be healthy in the long term.
I've heard this reported, but it's hard to imagine it. The biggest bottleneck for me has always been hammock time[1].

1. https://github.com/matthiasn/talk-transcripts/blob/master/Hi...

Yes, but once you have the solution crystalized in your head do you not feel some frustration in not getting it implemented as soon as possible?

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.

I simply type it out equanimously. The attachment to speed is neither here nor there. It will end up on the screen in due time.
I think you're talking about the flow state, which makes sense. I've said it before there was an aspect to programming that was almost meditative, that zone where ideas flow easily into code. I do miss that experience. (I also suspect the lack of it contributes to the burnout reported by heavy AI coders.)

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.

Sure, if I had enough time.

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.

> Yes, but once you have the solution crystalized in your head do you not feel some frustration in not getting it implemented as soon as possible?

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

Yay!!! There are people like me in this world. :-)
Disclaimer: I'm an older dev out of the game. I could definitely see the bigger picture faster than I could type it (except for challenging tasks), but that typing time was also synergistic thinking time. Not unfrequently, I'd find a better design while writing the code. Even if it didn't make it into that codebase, it could be filed away for future reference.

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.

This is part of what I don't understand about the new narrative. I agree in principle that yes, the mechanical act of writing code was always the real bottleneck. But people act like all you have to do is carefully plan everything out up front, double check it at the end, and bob's your uncle.

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.

>But people act like all you have to do is carefully plan everything out up front, double check it at the end, and bob's your uncle.

It's a coping mechanism. Goal shifting to protect yourself.

I can't even count how often i think i have everything planned out and then halfway through implementation realizing a much better way, or some case i didn't consider, or a different way to eliminate the problem, etc. This is true both when I'm writing code myself and when I'm driving Claude. I see coworkers just taking the first concept from Claude and running with it and you can really tell that skipping the thinking that goes on during the implementation step really has drastic bad effects on the final code.
Typing it was never the work.

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.

[delayed]
"You can just tell it what to fix"

For a lot of small changes, I am waaaaaay faster than an LLM.

I don't understand people that say "I no longer code" as a good thing. I think it's safe to assume that if you studied computer science or similar you like to code. If not, why did you even study that?

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

> If not, why did you even study that?

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.

>"This is like if a plumber said. I no longer do any construction, I just tell people what to do."

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.

It’s like saying “I no longer read or write assembly”; you are still solving problems but you are able to work in a higher level space to do it.
What do you mean "solve problems"? Everyone solves problems at their job. A CEO solves problems, same for a salesman.

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

> To me it just feels like you want to be a manager not an engineer

A manager has access to a larger, sloppier, and more powerful API than an engineer.

And before LLMs he would have slapped together a twenty-line bash script and a cron job over lunch, and spent six months working on something else.
The writing style really seems to rub off onto people after a while, eh.
It’s more AI copypasta as it goes further along where it gets really into the how and not the why.

“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…

I've been a software dev for 25 years. In the past year I've hand written maybe 10 lines of code. For the first 2-3 months i would read it, then I figured out how to really use AI/code gen and the amount created was more than I could read. I can work on 2-3 projects at once, or 2-3 parts of a larger project at once. More than that I can't keep task switching. The speed and complexity of what I'm able to create is 10x doing it by hand. In the hands of someone that understands system design it's a great tool, but still need fundamentals. I've seen junior's build stuff that would never deploy and would crash with a handful of users.
>For the first 2-3 months i would read it, then I figured out how to really use AI/code gen and the amount created was more than I could read

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.

I think you will always need a button pusher. whether it is the CEO, the product manager or the developer themselves. You will need some sort of overseer who will take accountability of the system that is generated by the AI.
>I think you will always need a button pusher.

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".

"Compositors who have adopted Linotype machines 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 “printer.”"

"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.

Yes. The only rational response to the coming AI wave is to get out of the business of selling intelligence for money. The machines will out-think you for cheaper.
ai;dr

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.

Writing code with LLMs takes discipline and is difficult. You need to learn how to do it and how to get the best from it.

Software engineering is dead, long live software engineering!

It really isn't that hard. The LLM needs a few iterations of self review, and you need to ask it for an architecture up front, but from there, it's mostly manual testing to make sure the LLM didn't fuck up.

I don't think it'd take more than a few weeks for a high schooler to learn how to prompt well.

Your hypothetical high schooler would have to learn what architecture is, and then what self review is, and iteration, and manual testing... and what "code" and "software" is first.
This is something devs don’t give enough credit. You may think you’re just promoting, but ask someone outside the field to prompt their way to a feature and you will see very clearly what your experience is bringing to the table.
> 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.

I have a non-technical cousin that figured it out just fine.
Unfortunate to see an otherwise-good article padded by AI-isms ("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.", amongst other examples).

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_.

Don't bother with complexity metrics just use claude code to work on a code base with high coupling and low cohesion.
> There is no one answer to agentic engineering. Everyone works differently; every model is good at different things. The key here is reps: do a lot, ask a lot, throw away a lot. You’ll learn what works for you.

That all reads to me like: The key here is: "Burn money in a bonfire, pray you typed in the right magic spell and the ingredients 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, after all. I wasn’t going to understand them by reading prompt guides. I had to use them for real work, see where they failed, change the prompts, tools, or environment, and try again.

It seems that all this knowledge would be useless with a model update...

I committed to the fully agentic approach for a while. No code by hand!

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?

There's definitely skill rot that happens -- but there are also new skills to learn. Dependency on tools is not a new problem, though, is it?

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.

The problem I'm seeing is that most of that additional output is just increasing pressure on the real bottlenecks such as design, QA, operations, support, etc. Which is why we're seeing this dual phenomenon of programmer productivity increases at the same time as the productivity of the overall business crashes out.

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.

Yeah, I am also feeling the rot and do not like it one bit. However, the world does not revolve around my feelings, so I have adapted and fully embraced it. That being said, I think AI took away 90% of the enjoyment I got from the job of Software Engineer. It isn't just the code writing, it was the space to go deep and immerse myself fully to solve a problem. I think there is still a need to problem solve at different levels, but with AI the velocity has increased so much - the space to focus on one thing for any amount of time has also been drastically reduced (this could be because I work for a company and may be company specific. I also do freelance dev, and find much more enjoyment there, but still not the same as pre AI).
Yup. I have embraced LLM usage since it's obvious this genie is not going back in the bottle and they are objectively force-multipliers at certain tasks. But I didn't get into software engineering to be productive, I fell into this career because I loved building things and it just sort of evolved into a pretty lucrative hobby.

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

The author also has agents write their blog posts.
How do people read these types of post with this AI flair, I couldn't read more than a couple sentences
I start with the first word, then move on to the second and so forth, letting the overall idea of what I am reading in my mind grow as I get further and further
Which model?
It is such an incredibly disrespectful way of communication.

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.

I couldn't agree more.

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.

Title should be "six months of writing code (and blog posts) exclusively with agents"
Besides code, the author delegates their own thoughts/words to AI.
I feel a really odd dissonance with all these accounts. I have access to top models via Cursor at work. Every time I think to myself, here’s a tedious but well defined task, with clear success criteria, where you can achieve a lot with persistent iterations. I’ll give it to Claude to do.

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.

I've found a more productive workflow is to ask claude how it would do the task, go back and forth with it a bit until you both agree on the steps, then have it work through them. i also emphasise the need to have every step in its own commit, then go back and read through the stack suggesting code improvements and refactoring, letting the AI do the tedious work of fixing conflicts and restacking. I'm usually pretty happy with the process and the end result.
This is similar to my experience when cursor first came out. But now it's even trickier because LLM actually writes working code that pass the test. The issue is when i dig in deeper, there's often small security or design issues that will cause problem down the road when the app gets more traffic.

These issues are usually in really tedious places that I didn't bother to describe what to do to the agent

> design issues that will cause problem down the road when the app gets more traffic.

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.

Take a step back and give it the essential functional requirements.

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.

Well, quite. Recently I gave it a database dump, and told it what the processed data looks like. Since the raw data was messy, there was a lot to explain.

It didn’t go well.

I honestly didn't read the whole article, but I think that this kind of experiment leads to a misleading way of seeing things.

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.

> AI agents are just software, after all. I wasn’t going to understand them by reading prompt guides. I had to use them for real work, see where they failed, change the prompts, tools, or environment, and try again.

AI agents are just software, so the only way to understand them is trial and error?

Tried and true approach. Sometimes the only way to proceed if you are dealing with - embedded devices, protocols, long and deep stacktraces or freecad.
I’m m just starting to get results on a local/cloud agent pipeline I’ve been building. I don’t think I will ever code again. Plan, review, read, architect, test, yes. Code though simply doesn’t make sense when I’m getting these results at this velocity.

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.

I have stopped reading blog posts for 6 months now! Since Fable-1337-B4242 agents became so good at reading that I delegated this load-bearing task. Once I became weak and read a paragraph, but I was reminded that reading is too laborious.

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.

Writing code used to be free, anyone could do it with enough patience and knowledge, but now you have to pay hundreds of dollars to do this kind of thing with agents. It seems the barrier to entry has gotten more expensive.
Couple points:

> 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