The tradeoff of higher velocity for less enjoyment may feel less welcome when it becomes the new baseline and the expectation of employers / customers. The excitement of getting a day's work done in an hour* (for example) is likely to fade once the expectation is to produce 8 of such old-days output per day.
I suspect it doesn't matter how we feel about it mind you. If it's going to happen it will, whether we enjoy the gains first or not.
* setting aside whether this is currently possible, or whether we're actually trading away more quality that we realise.
> The excitement of getting a day's work done in an hour* (for example) is likely to fade once the expectation is to produce 8 of such old-days output per day.
That dumb attitude (which I understand you’re criticising) of “more more more” always reminds me of Lenny from the Simpsons moving fast through the yellow light, with nowhere to go.
> "If it's going to happen it will" - That is quite the defeatist attitude. Society becoming shittier isn’t inevitable
You're right in general, but I don't think that'll save you/us from OP's statement. This is simple economic incentives at play. If AI-coding is even marginally more economically efficient (i.e. more for less) the "old way" will be swept aside at breathtaking pace (as we're seeing). The "from my cold dead hands" hand-coding crowd may be right, but they're a transitional historical footnote. Coding was always blue-collar white-collar work. No-one outside of coders will weep for what was lost.
I suspect we'll find that the amount of technical debt and loss of institutional knowledge incured by misuse of these tools was initially underappreciated.
I don't doubt that the industry will be transformed, but that doesn't mean that these tools are a panacea.
I read about AI assistants allegedly creating tech debt but my experience is opposite. Claude Code makes it easy to refactor helping to reduce tech debt. Tech debt usually happens because refactoring takes time but is hard to justify to upper management because upper management only sees new features but not quality of code. With Claude Code refactoring is much faster so it gets done.
> That dumb attitude (which I understand you’re criticising) of “more more more” always reminds me of Lenny from the Simpsons moving fast through the yellow light, with nowhere to go.
Realizing that attitude in myself at times has given me so much more peace of mind. Just in general, not everything needs to be as fast and efficient as possible.
Not to mention the times where in the end I spend a lot of time and energy in trying to be faster only to end up with this xkcd: https://xkcd.com/1319/
As far as LLM use goes, I don't need moar velocity! so I don't try to min max my agentic workflow just to squeeze out X amount more lines code.
In fact, I don't really work with agentic workflows to begin with. I more or less still use LLMs as tools external to the process. Using them as interactive rubber duckies. Things like deciphering spaghetti code, do a sanity check on code I wrote (and being very critical of the suggestions they come up with), getting a quick jump start on stuff I haven't used again (how do I get started with X of Y again?), that sort of stuff.
Using LLMs in the IDE and other agentic use is something I have worked with. But to me it falls under what I call "lazy use" where you are further and further removed from the creation of code, the reasoning behind it, etc. I know it is a highly popular approach with many people on HN. But in my experience, it is an approach that makes skills of experienced developers atrophy and makes sure junior developers are less likely to pick them up. Making both overly reliant on tools that have been shown to be less than reliable when the output isn't properly reviewed.
I get the firm feeling that velocity crowd works in environments where they are judged by the amount of tickets closed. Basically "feature complete, test green, merged, move on!". In that context, it isn't really "important" that the tests that are green are also refactored by the thing itself, just that they are green. It is a symptom of a corporate environment where the focus is on these "productivity" metrics. From that perspective I can fully see the appeal for LLM heavy workflows as they most certainly will have an impact on metrics like "tickets closed" or "lines of code written".
We are very well paid for very cushy work. It's not good for anyone's work to get worse, but it's not a huge hit to society if a well-paid cushy job gets less cushy.
And presumably people buy our work because it's valuable to them. Multiplying that by 8 would be a pretty big benefit to society.
I don't want my job to get less fun, but I would press that button without hesitation. It would be an incredible trade for society at large.
Software devs jobs getting less cushy is no biggie. We can afford to amp up the efficiency.
Teachers jobs got "less cushy" -> not great for users/consumers or the ppl in those jobs.
Doctors jobs got "less cushy" -> not great for users/consumers or the ppl in those jobs.
Even waiters/ check-out staff, stockists jobs at restaurants, groceries and AMZ got "less cushy" -> not great for users/consumers or the ppl in those jobs. at least not when you need to call someone for help.
These things are not as disconnected as they seem. Businesses are in fact made up of people.
If you think software development is cushy, I wonder what kind of software you're writing. Because there are different levels; getting something to work is not the same thing as writing maintainable, high quality software.
I've seen plenty enough people try, really try, to get into software development; but they just can't do it.
> That is quite the defeatist attitude. Society becoming shittier isn’t inevitable, though inaction and giving up certainly helps that along.
This feels like kicking someone when they’re down! Given the current state of corporate and political America, it doesn’t look likely there will be any pressure for anything but enshittification to me. Telling people at the coal face to stay cheerful seems unlikely to help. What mechanism do you see for not giving up to actually change the experience of people in 10 ish years time?
> Telling people at the coal face to stay cheerful seems unlikely to help.
That isn't what they said tho. They said you have to do something, not that you should just be happy. Doing something can involve things that historically had a big impact in improving working conditions, like collective action and forming unions.
The opposite advice would be: "Everything's fucked, nothing you can do will change it, so just give up." Needless to say that is bad advice unless you are a targeted individual in a murderous regime or similar.
> The trick is not telling anyone you spent an hour to do 7 hours of work.
I wish that the hype crowd would do that. It would make a for a much more enjoyable and sane experience on platforms like this. It's extremely difficult to have actual conversations subjects when there are crowds of fans involved who don't want to hear anything negative.
Yes, I also do realize there are people completely on the other side as well. But to honest, I can see why they are annoyed by the fan crowd.
The most challenging thing I'm finding about working with LLM-based tools is the reduction in enjoyment. I'm in this business because I love it, and I'm worried about that going forward.
> The excitement of getting a day's work done in an hour* (for example) is likely to fade once the expectation is to produce 8 of such old-days output per day.
It's not really about excitement or enjoyment of work.
It's the fear about the __8x output__ being considered as __8x productivity__.
The increase in `output/productivity` factor has various negative implications. I would not say everything out loud. But the wise can read between the lines.
For the longest time, IT workers were 'protected' from Marx's alienation of labor by the rarity of your skill, but now it's coming for you/us, too. Claude Code is to programmers what textile machines were to textile workers.
>In the capitalist mode of production, the generation of products (goods and services) is accomplished with an endless sequence of discrete, repetitive motions that offer the worker little psychological satisfaction for "a job well done." By means of commodification, the labour power of the worker is reduced to wages (an exchange value); the psychological estrangement (Entfremdung) of the worker results from the unmediated relation between his productive labour and the wages paid to him for the labour.
Less often discussed is Marx's view of social alienation in this context: i.e., workers used to take pride in who they are based on their occupation. 'I am the best blacksmith in town.'
Automation destroyed that for workers, and it'll come for you/us, too.
What caused textile machines to replace the manual labor wasn’t the quality of their output, it was quantity. In fact, manually made clothing was of higher quality than what was machine-produced.
Safety critical (will kill someone if not bug free) code makes up <1% of what's shipped, safety clothes which must be of high quality else risk harm to someone make up a similarly small percent
Both will stay manual / require high level of review they're not what's being disrupted (at-least in near term) - it's the rest.
Why wouldn’t it be possible if meat computers can do it more or less reliably? The construction of such a machine is a matter of time; whether it’s a year or a century is anyone’s guess.
When it is eventually made, though… it’s either aligned or we’re in trouble. Job cushiness will be P2 or P3 in a world where a computer can do everything economically viable better than any human.
Exactly, maybe "prompt engineering" is really a skill, but the reward for getting better at this is just pumping out more features at a low skill grade. What's excited about this ? Unless I want to spend all my time building minimum viable product.
Prompt engineering is just writing acceptance criteria; it's moving from someone who writes code to someone who writes higher level feature descriptions. Or user stories, if you will.
Thing is though, many people don't know how to do that (user stories / acceptance criteria) properly, and it's been up to software developers to poke holes and fill in the blanks that the writer didn't think about.
> The tradeoff of higher velocity for less enjoyment may feel less welcome when it becomes the new baseline and the expectation of employers / customers. The excitement of getting a day's work done in an hour* (for example) is likely to fade once the expectation is to produce 8 of such old-days output per day.
That's why we should be against it but hey, we can provide more value to shareholders!
Short-term, automated tech debt creation will yield gains.
Long term the craftsperson writing excellent code will win. It is now easier than ever to write excellent code, for those that are able to choose their pace.
Given it's 2025 and companies saddled with tech debt continue to prioritize speed of delivery over quality, I doubt the craftperson will win.
If anything we'll see disposable systems (or parts) and the job of an SE will become even more like a plumber, connecting prebuilt business logic to prebuilt systems libraries. When one of those fails, have AI whip up a brand new one instead of troubleshooting the existing one(s). After all, for business leader it's the output that matters, not the code.
For 20+ years business leaders have been eager to shed the high overhead of developers via any means necessary while ignoring their most expensive employees' input. Anyone remember Dilbert? It was funny as a kid, and is now tragic in its timeless accuracy a generation later.
> it's 2025 and companies saddled with tech debt continue to prioritize speed of delivery over quality
Maybe. I'm seeing the opposite - yes, the big ships take time to turn, but with the rise of ransomware and increasing privacy regulation around the world, companies are putting more and more emphasis on quality and avoiding incidents.
Yes there will be a class of developer like that, but it would only be considered winning if you're satisfied with climbing some artificial institutional hierarchy.
>The tradeoff of higher velocity for less enjoyment may feel less welcome when it becomes the new baseline and the expectation of employers / customers.
This is precisely the question that scares me now. It is always so satisfying when a revolution occurs to hold hands and hug each other in the streets and shout "death to the old order". But what happens the next morning? Will we capture this monumental gain for labor or will we cede it to capital? My money is on the latter. Why wouldn't it be? Did they let us go home early when the punch card looms weaved months worth of hand work in a day? No, they made us work twice as hard for half the pay.
If there are 8 days per day worth of work to be done (which I doubt), why wouldn’t you want to have it done ASAP? You’re going to have to do it eventually, so why not just do it now? Doesn’t make sense. You act like they’re just making up new work for you to do when previously there wouldn’t have been any.
Yes, work will expand to fill all your available hours due to unaligned incentives between who does the work (the SWE in this example) and who decide the quantity, timeline, and cost of work.
If the SWE can finish his work faster, 8x faster in this case, then backlogs will also be pushed to complete 8x faster by the project manager. If there are no backlogs, new features will be required at 8x faster / more by sales team / clients. If no new features are needed, pressures will be made until costs are 8x lower by finance. If there are no legal, moral, competitive, or physical constraints, the process should continue until either there’s only a single dev working on all his available time, or less time but for considerably less salary.
In my experience, listening to music engages the creative part of your brain and severely limits what you can do, but this is not readily apparent.
If I listen to music, I can spend an hour CODING YEAH! and be all smug and satisfied, until I turn the music off and discover that everything I've coded is unnecessary and there is an easier way to achieve the same goal. I just didn't see it, because the creative part of my brain was busy listening to music.
From the post, it sounds like the author discovered the same thing: if you use AI to perform menial tasks (like coding), all that is left is thinking creatively, and you can't do that while listening to music.
> discover that everything I've coded is unnecessary and there is an easier way to achieve the same goal
In my experience, there is no good shortcut to this realization. Doing it wrong first is part of the journey. You might as well enjoy the necessary mistakes along the way. The third time’s the charm!
I don't think that's down to music per se, but a more generalized thing. Software developers love being in a flow state, some of them pursue it all the time (...guilty) and get frustrated when their job changes (e.g. moving towards management) so they spend less time in that flow state.
But also, this can create waste, in that people write the Best Code Ever in their flow state (while listening music or not), but... it wasn't necessary in the first place and the time spent was a waste. This can waste anything from an hour to six months of work (honestly, I had a "CTO" once who led a team of three dozen people or so who actually went into his batcave at home for six months to write a C# framework of sorts that the whole company should use. He then quit and became self-employed so the company had to re-hire him to make sense of the framework he wrote. I'm sure he enjoyed it very much though.)
I describe it slightly differently. Similar to what the author described, I'll first plan and solve the problem in my head, lay out a broad action plan, and then put on music to implement it.
But, for me the music serves something akin to clocks in microcontrollers (and even CPUs), it provides a flow that my brain syncs to. I'm not even paying attention to the music itself, but it stops me from getting distracted and focus on the task at hand.
I'm sorry but that's nonsense. Listening to music is not a creative process, it does not at all take away creativity from somewhere else.
I've never, ever, ever once in 40 years of coding listened to music while coding and later found the code "unnecessary" or anything of the sort.
I engage in many creative pursuits outside of coding, always while listening to music, and I can confidently say that music has never once interfered in the process or limited the result in any way.
I just think it's distracting. I get caught up listening to the lyrics and kind of mentally singing along, stuff like that which disrupts my thought and distracts from what I actually want to be thinking about.
I think this is individual, I have the same problem in social settings - if I'm having a conversation and a song I like is playing in the background I some times stop listening to the conversation and focus on the music instead, unintentionally.
My solution is to listen to music without vocals when I need to focus. I've had phases where I listen to classical music, electronic stuff, and lately I've been using an app I found called brain.fm which I think just plays AI generated lo-fi or whatever and there's some binaural beats thing going on as well that's supposed to enhance focus, creativity etc. I like it but some times I go back to regular music just because I miss listening to something I actually like.
From the masterpiece, Tragedy of the Man, describing the future where everything is done in the name of efficiency:
THE GREYBEARD
You left your workroom in great disarray.
MICHELANGELO
Because I had to fabricate the chair-legs
To the quality as poor as it can be.
I appeal’d for long, let me modificate,
Let me engrave some ornaments on it.
They did not permit. I wanted as a chance
The chair-back to change but all was in vain.
I was very close to be a madman
And I left the pains and my workroom, too. (stands back)
THE GREYBEARD
You get house arrest for this disorder
And will not enjoy this nice and warm day.
I’d probably drop GenAI before I dropped the music that allows me to focus. Also, at this stage of my career, I mainly code for fun, and blasting music across the house is part of it.
I use Zoom rather than Teams, but have no problems playing background music with Spotify. Just have to make sure that “share computer audio” is not enabled when sharing your screen. Also, when I was using the mic of my bluetooth headphones, any music played would be mono and lower quality due to bluetooth bandwidth. Since moving to using a dedicated mic on my desk, the bluetooth headphones are output only and back to good quality stereo (MacOSX and Bose QC35).
Not too long ago, I installed a system mixer/EQ on my work computer so I could mix ambient-ish music with Zoom calls while giving space to the (meeting room's) vocals. It works great.
Sounds great…
I’m a hobbyist audio engineer so can’t resist tinkering.
My mic input goes to Rogue Amoeba’s Audio Hijack which allows a chain of VST plugins to be used. I use a gentle noise gate, followed by Supertone Clear. This is excellent for removing any noise mixed in with my voice. It handles the dehumidifier near me with ease, and can also handle the portable aircon on heatwave days, which can be very loud. Next in the chain is some gentle and transparent compression, and then the output goes to the free Blackhole virtual audio device. Zoom then picks up that device. Tweaked Zoom settings and “original sound for musicians” button then stops it from compromising the sound as much as possible. I am tempted to have some EQ plugin tweaks too, but I love the character of the mic so I don’t mess around with it.
EQing the music played sounds interesting. I’ll look at the options. I tend to just have it at a level low enough that I can hear all speakers on the call.
> writing a blurb that contains the same mental model
Good nugget. Effective prompting, aside from context curation, is about providing the LLM with an approximation of your world model and theory, not just a local task description. This includes all your unstated assumptions, interaction between system and world, open questions, edge cases, intents, best practices, and so on. Basically distill the shape of the problem from all possible perspectives, so there's an all-domain robustness to the understanding of what you want. A simple stream of thoughts in xml tags that you type out in a quasi-delirium over 2 minutes can be sufficient. I find this especially important with gpt-5, which is good at following instructions to the point of pedantry. Without it, the model can tunnel vision on a particular part of the task request.
It's not parody. I'm trying to provide the LLM with what's missing, which is a theory of how the system fits into the world: https://pages.cs.wisc.edu/~remzi/Naur.pdf
Without this it defaults to being ignorant about the trade-offs that you care about, or the relevant assumptions you're making which you think are obvious but really aren't.
The "simple stream" aspect is that each task I give to the LLM is narrowly scoped, and I don't want to put all aspects of the relevant theory that pertains just to that one narrow task into a more formal centralized doc. It's better off as an ephemeral part of the prompt that I can delete after the task is done. But I also do have more formal docs that describe the shared parts of the theory that every prompt will need access to, which is fed in as part of the normal context.
So like:
<prompt>
<intent>Generate a metaphor-rich essay on the fragility of digital memory in the age of infinite storage</intent>
<assumptions>
<tech>LLMs understand metaphor but may default to literal interpretations unless nudged</tech>
<audience>Reader is tech-savvy but emotionally attuned</audience>
<bias>We romanticize loss and impermanence; permanence is sterile</bias>
<style>Poetic, but not florid. Think Calvino meets cyberpunk.</style>
</assumptions>
<worldModel>
<digitalMemory>
<definition>Not just data retention, but emotional proxies, identity scaffolding</definition>
<paradox>We remember too much, and thus forget how to forget</paradox>
<analogy>Digital memory is a hoarder’s attic with perfect climate control</analogy>
</digitalMemory>
<humanMemory>
<contrast>Fuzzy, selective, narrative-driven</contrast>
<value>Its gaps are what make it beautiful</value>
</humanMemory>
<systemInteraction>
<modelRole>LLM is not just a scribe, but a co-dreamer</modelRole>
<risk>Model may over-index on coherence, losing the emotional fray</risk>
</systemInteraction>
</worldModel>
<openQuestions>
<q>Can forgetting be designed into digital systems?</q>
<q>Is nostalgia a compression algorithm?</q>
<q>What does it mean to "misremember" in a world of perfect logs?</q>
</openQuestions>
<edgeCases>
<case>Model generates a dystopia instead of a melancholic tone</case>
<case>Model literalizes metaphors (e.g., "clouds forget")</case>
<case>Model assumes user wants a solution, not a meditation</case>
</edgeCases>
<bestPractices>
<tip>Use metaphor as scaffolding, not decoration</tip>
<tip>Let ambiguity breathe—don’t resolve every tension</tip>
<tip>Favor rhythm over precision in sentence structure</tip>
</bestPractices>
<meta>
<duration>Prompt typed in 2 minutes, no edits</duration>
<mood>Sleep-deprived but lucid</mood>
<goal>To make the model feel like it’s dreaming with me</goal>
</meta>
That's an argument I had with a friend last year. I told him generative AI will make writing code easier, but the life of whoever is writing it far worse. Because writing code without using AI is done with some sort of due diligence: you memorize some stuff, look up other stuff in the docs or online, and you take some time actually solving the problem you have. If you succeed, you would've spent the needed time at YOUR pace, with an intrinsic reward of feeling good that you achieved something. With AI, on the other hand, you are in semi-cheat mode, throwing prompts after prompts and now you are trying to catch someone/something else's pace, zero reward, and more mentally exhausted.
The best approach is to use AI only when you are stuck and looking for potential solutions, but we all know that is not going to happen unless you have extreme self-control.
It definitely changed how I get into flow state for me. But music still works, if not even better when coding with AI (listening to: techno, electro, edm). Generally my flow is to sit down, make a small plan of what I will work on, fire off 2 agents to work on different parts of the code that are lower hanging fruits (takes 2-10 mins for them to complete). Then while this is busy, map out some bigger tasks.
Agents finish, I queue them up with new low hanging fruits, while I architect the much bigger tasks, then fire that off -> Review smaller tasks. It really is a dance, but flow is much easier achieved when I do get into it; hours really just melt together. The important thing to do is to put my phone away, and block all and any social media or sites I frequent, because its easy to get distracted when agents aren just producing code and you're sitting on the sidelines.
That's not the same flow state experienced by programmers.
While programming, it's possible to get into a trance-like state where the program's logic is fully loaded and visible in your mind, and your fingers become an extension of your mind that wire you directly to the machine. This allows you to modify the program essentially at the speed of thought, with practically zero chance of producing buggy code. The programmer effectively becomes a self-correcting human interpreter.
Interrupting someone in this state is incredibly disruptive, since all the context and momentum is lost, and getting back into the state takes time and focus.
What you're describing is a general workflow. You can be focused on what you're doing, but there's no state loaded into memory that makes you more efficient. Interruptions are not disruptive, and you can pick up exactly where you left off with ease. In fact, you're constantly being interrupted by those agents running in the background, when they finish and you give them more work. This is a multitasking state, not flow.
So the article is correct. It's not possible to get into a flow state while working with ML tools. This is because it is an entirely different activity from programming that triggers different neural pathways.
I encounter a problem which is my social media usage increase. The time when you wait for the agent to write code is kinda silly :) You can not switch to do other things as it will make your focus shift away from the code. So usually I just dumb scroll for 1 minute
Whenever I need some sort of quick data pipeline to modify some sort of file into another format, or do some batch transformation, or transform some sort of interface description into another syntax, or things like that, that would normally require me to craft a grep, awk, tr, etc pipeline, I can normally simply paste a sample of the data and with a human language description get what I need. If it’s not working well I can break up the steps in smaller steps.
In my experience, it seems the people who have bad results have been trying to get the AI to do the reasoning. I feel like if I do the reasoning, I can offload menial tasks to the AI, and little annoying things that would take one or two hours start to take a few minutes.
The ones who know what they want to do, how it should be done, but can't really be arsed to read the man pages or API docs of all the tools required.
These people can craft a prompt (prompt engineering :P) for the LLM that gets good results pretty much directly.
LLMs are garbage in garbage out. Sometimes the statistical average is enough, sometimes you need to give it more details to use the available tools correctly.
Like the fact that `fd` has the `-exec` and `--exec-batch` parameters, there's no need to use xargs or pipes with it.
Every kind of project is faster with AI, because it writes the code faster.
Then you have to QA it for ages to discover the bugs it wrote, but the initial perception of speed never leaves you.
I think I'm overall slower with AI, but I could be faster if I had it write simple functions that I could review one by one, and have the AI compose them the way I wanted. Unfortunately, I'm too lazy to be faster.
With web apps playwright-mcp[0] is essential IMO. It lets the AI Agent check its own work before claiming it's done.
With that it can see any errors in the console, click through the UI and take screenshots to analyse how it looks giving it an independent feedback loop.
Where I work there are like 2x as many front end developers as there is need for. They spend an insane amount of time doing meetings, they require approval of 2 different people for every simple CSS change.
Their job is to do meetings, and occasionally add a couple of items to the HTML, which has been mostly unchanged for the past 10 years, save for changing the CSS and updating the js framework they use.
Pretty much what somebody else said: AI takes over simple tasks, the "fluff" around the business logic, error handling, stuff like that, so I can focus on doing the harder stuff at the core.
> 90% of what the average (or median) coder does isn't in any way novel or innovative. It's just API Glue in one form or another.
I hear this from people extolling the virtue of AI a lot, but I have a very hard time believing it. I certainly wouldn't describe 90% of my coding work as boilerplate or API glue. If you're dealing with that volume of boilerplate/glue, isn't it incumbent upon you to try and find a way to remove that? Certainly sometimes it isn't feasible, but that seems like the exception encountered by people working on giant codebases with a very large number of contributors.
I don't think the work I do is innovative or even novel, but it is nuanced in a way I've seen Claude struggle with.
To be more exact, 90% of the _code_ I write is mostly just different types of API glue. Get data from this system, process it and put it in another system.
It's the connectors that are 90-95% AI chow, just set it to task with a few examples and it'll have a full CRUD interface for your data done while you get more snacks.
Then you can spend _more_ of your limited time on the 10% of code that matters.
That said, less than 50% of my actual time spent on the clock is spent writing code. That's the easiest part of the job. The rest is coordinating and planning and designing.
Because I need to have a controller that does CRUD operations.
It has a specific amount of code I need to write just to add the basic boilerplate of receiving the data and returning a result from the endpoint before I can get to the meat of it.
IIRC there are no languages where I can just open an empty file and write "put: <business logic>" and it magically knows how to handle everything correctly.
Does the "<business logic>" part involve a bunch of irreducible boilerplate too or something? What's it like?
If it doesn't, then I feel like even in the JavaScript world of 2015 you could write "app.put("/mypath", business_logic)" and that would do the trick, and that was a very immature language ecosystem.
I'm slowed down (but perhaps sped up overall due to lower rewrites/maintenance costs) on important bits because the space of possibilities/capabilities is expanded, and I'm choosing to make use of that for some load bearing pieces that need to be durable and high quality (along the metrics that I care about). It takes extra time to search that space properly rather than accept the first thing that compiles and passes tests. So arguably equal or even lower velocity, but definitely improved results compared to what I used to be capable of, and I'm making that trade-off consciously for certain bits. However that's the current state of affairs, who knows what it'll look like in 1-2 years.
I’m building a moderately complex system with FastAPI + PG + Prefect executing stuff on Cloud Run, and so long as I invest in getting the architecture and specs right, it’s really a dream how much of the heavy lifting and grunt work I can leave to Claude Code. And thank god I don’t have to manage Alembic by myself.
I set up a model in DBT that has 100 columns. I need to generate a schema for it (old tools could do this) with appropriate tests and likely data types (old tools struggled with this). AI is really good at this sort of thing.
There's a local website that sells actual physical Blu-rays. Their webshite is a horror show of Javascript.
I had Claude Code build me a Playwright+python -based scraper that goes through their movie section and stores the data locally to an sqlite database + a web UI for me to watchlist specific movies + add price ranges to be alerted when it changes.
Took me maybe a total of 30 minutes of "active" time (4-5 hours real-time, I was doing other shit at the same time) to get it to a point where I can actually use it.
Basically small utilities for limited release (personal, team, company-internal) is what AI coding excels at.
Like grabbing results from a survey tool, adding them to a google sheet, summarising the data to another tab with formulas. Maybe calling an LLM for sentiment analysis on the free text fields.
Half a day max from zero to Good Enough. I didn't even have to open the API docs.
Is it perfect? Of course not. But the previous state was one person spending half a day for _each_ survey doing that manually. Now the automation runs in a minute or so, depending on whether Google Sheets API is having a day or not =)
It’s a lot more high-level executive functioning now, instead of grinding through endless syntax and boilerplate. Easy to mindlessly code to music, much harder to think about what you want to do next, and evaluate if the result you just got is what you really wanted.
Doing things faster comes way down the priority list where I work. We spend a lot of resources on understanding and improving the code, as well as breaking knowledge silos.
Because the people running the show are experienced software devs, not AI clowns.
I cannot run or code to music. I might be playing music while doing so, but it's super distracting and it's basically just me working at 50% while enjoying myself. I worked with a bunch of guys that always always always had a web radio pumping cheesy hard style stuff all day long.
Finally someone emphasized upon the cognitive load of AI-assisted coding.
It definitely makes me faster but it's consistent prompt->code-review->prompt->code-review->scratch->prompt-code->review cycle which just requires extreme focus.
The line that stood out for me was that "a 4-hour session of AI coding is more cognitively intense than a 4-hour session of non-AI coding."
Many programmers are rejecting AI coding because they miss the challenge they enjoy getting from conventional programming but this author finds it even more challenging. Or perhaps challenging in a different way?
There is a distinction I believe between challenging and focusing. The difference lies in difficulty (the former being more dificult) and workload (the latter being more intellectualy labor intensive), which is an interesting approach to intellectual menial labor as distinct from intellectual craft.
I think there are (at least) two types of programmer - I am the kind of programmer who wants everything done right. Others don't care as long as it works and the boss is happy.
I suspect that the type of programmer who enjoys vibe coding is the latter. For me it's pretty tiring to explain everything in excruciating detail, it's often easier to just write the code myself rather than explain in English how to write it.
It feels like I am just doing the hard part of programming all the time - deciding how the app should work and how the code should be structured etc, and I never get those breaks where I just implement my plan.
I suspect the difference lies in people who think in code versus people who translate their thoughts into code
I think in code and programming concepts when I am writing software . I don't really know how to explain that, but I don't often feel like there is any friction between my thoughts and the code I make
I think that many coders do not have this. They have an extra "translation" step that introduces friction into their workflow
I don't experience this friction, so LLM coding introduces new friction that I don't like
They do experience this friction, so LLM coding doesn't introduce new friction for them, it may transform their previous friction into a new form that is easier for them to navigate
I don't know. Maybe I'm talking out my ass, this is just a random theory based on no real evidence
I let the AI first generate a outline of how it would do it as markdown. I adapt this and then let it add details into additional markdown files about technical stuff, eg how to use a certain sdk and so on. I correct these all.
And then I let the AI generate the classes of the outline one by one.
I cannot code to music at all. I miss either the music or the code or keep switching and get tired. I can do a mechanical job, e.g. adding records to a database.
(I also find AI repulsive and have no intention to engage in anything AI-related. Recently I turned off AI "help" in DDG.)
> For frontend code and my side projects, AI coding seems to be even more effective and actually reduces the cognitive load, winning in all dimensions.
Can we see this frontend code? For research purposes, of course.
What happened to coding for joy in your free time? At work I do whatever the company wants as long as I get my money at the end of the month. Java? Sure boss. Golang? Let’s do it. LLMs? Whatever you want. TDD? Yep.
At home I still plan and devise my own worlds with joy. I may use LLMs for boring or repetitive tasks, or help or explanation; but I still can code better than the day before.
My theory as a none scientist is that you need a different part of the brain to think about AI prompts compared to coding yourself. Or maybe that whatever though process you need for coding intersects with the part that enjoys listening to music. And because of that intersection you can't focus on both at the same time.
CAN you get into a state of flow when directing an LLM? I don't have a lot of experience using LLMs to code, but it always feels like I'm coaching a junior staff member. No way to flow that, IMHO.
It’s the opposite for me. I’ve never been able to listen to music while coding as my thoughts would drown it out or it would keep me from thinking so I’d shut it off. However if I am vibe coding my brain is basically idle and can handle some music
I don't listen to music while doing code reviews either. It also happens to be my least favourite part of the job. The LLM agents just make it feel like I'm constantly code reviewing and I don't think it makes me more productive overall.
I'm curious which models the OP is using that produce code so quickly and accurately? I mostly use Claude Code, which is accurate, but it isn't very fast. I certainly don't feel like I'm producing piles of code with it.
I actually still listen to music heavily when in the zone with AI coding. Totally agree that the focus time feels much more intense now than it did before AI.
> Absolutely—I feel like I can ship at a crazy velocity now, like I have a team of interns at my disposal to code up my every silly demand.
I also wonder what type of simple CRUD apps people build that have such a performance gain? They must be building well understood projects or be incredible slow developers for LLMs to have such an impact, as I cant relate to this at all.
I wonder whether we'll be able to look back on this period in 10 years time and save definitively whether the wide spectrum of responses to LLMs was perception or real feature of our differing jobs.
That’s right, it’s good at things that are common. If your job is mostly filled with uncommon tasks, it won’t be good at helping you.
But for the rest of us, who have a mix of common/boring and uncommon/interesting tasks, accelerating the common ones means spending more time (proportionally) on less common tasks.
Unfortunately we don’t seem to great at classifying tasks as common or uncommon, and there are bored engineers who make complex solutions just to keep their brain occupied.
It's hard to get in the zone with an LLM doing crazy stuff.
For instance this week when setting up a Django/Wagtail project GPT helpfully went ahead and created migration files in text instead of "makemigrations". Otherwise it did a bang up job and saved me a couple of hours.
Just no way I can get in the zone wrangling that kind of thing all day.
But I'm not sure getting in the coding zone frequently was all that mentally healthy so oh well.
I dunno, it is a bit different leveraging a model, but I still listen to music coding. It does depend on the music. I need to listen to really brutal stuff (Arsis, Thyrfing, Dissection, etc.) to focus, though
The tradeoff of higher velocity for less enjoyment may feel less welcome when it becomes the new baseline and the expectation of employers / customers. The excitement of getting a day's work done in an hour* (for example) is likely to fade once the expectation is to produce 8 of such old-days output per day.
I suspect it doesn't matter how we feel about it mind you. If it's going to happen it will, whether we enjoy the gains first or not.
* setting aside whether this is currently possible, or whether we're actually trading away more quality that we realise.
> The excitement of getting a day's work done in an hour* (for example) is likely to fade once the expectation is to produce 8 of such old-days output per day.
That dumb attitude (which I understand you’re criticising) of “more more more” always reminds me of Lenny from the Simpsons moving fast through the yellow light, with nowhere to go.
https://www.youtube.com/watch?v=QR10t-B9nYY
> I suspect it doesn't matter how we feel about it mind you. If it's going to happen it will, whether we enjoy the gains first or not.
That is quite the defeatist attitude. Society becoming shittier isn’t inevitable, though inaction and giving up certainly helps that along.
> "If it's going to happen it will" - That is quite the defeatist attitude. Society becoming shittier isn’t inevitable
You're right in general, but I don't think that'll save you/us from OP's statement. This is simple economic incentives at play. If AI-coding is even marginally more economically efficient (i.e. more for less) the "old way" will be swept aside at breathtaking pace (as we're seeing). The "from my cold dead hands" hand-coding crowd may be right, but they're a transitional historical footnote. Coding was always blue-collar white-collar work. No-one outside of coders will weep for what was lost.
> more economically efficient
I suspect we'll find that the amount of technical debt and loss of institutional knowledge incured by misuse of these tools was initially underappreciated.
I don't doubt that the industry will be transformed, but that doesn't mean that these tools are a panacea.
I read about AI assistants allegedly creating tech debt but my experience is opposite. Claude Code makes it easy to refactor helping to reduce tech debt. Tech debt usually happens because refactoring takes time but is hard to justify to upper management because upper management only sees new features but not quality of code. With Claude Code refactoring is much faster so it gets done.
> That dumb attitude (which I understand you’re criticising) of “more more more” always reminds me of Lenny from the Simpsons moving fast through the yellow light, with nowhere to go.
Realizing that attitude in myself at times has given me so much more peace of mind. Just in general, not everything needs to be as fast and efficient as possible.
Not to mention the times where in the end I spend a lot of time and energy in trying to be faster only to end up with this xkcd: https://xkcd.com/1319/
As far as LLM use goes, I don't need moar velocity! so I don't try to min max my agentic workflow just to squeeze out X amount more lines code.
In fact, I don't really work with agentic workflows to begin with. I more or less still use LLMs as tools external to the process. Using them as interactive rubber duckies. Things like deciphering spaghetti code, do a sanity check on code I wrote (and being very critical of the suggestions they come up with), getting a quick jump start on stuff I haven't used again (how do I get started with X of Y again?), that sort of stuff.
Using LLMs in the IDE and other agentic use is something I have worked with. But to me it falls under what I call "lazy use" where you are further and further removed from the creation of code, the reasoning behind it, etc. I know it is a highly popular approach with many people on HN. But in my experience, it is an approach that makes skills of experienced developers atrophy and makes sure junior developers are less likely to pick them up. Making both overly reliant on tools that have been shown to be less than reliable when the output isn't properly reviewed.
I get the firm feeling that velocity crowd works in environments where they are judged by the amount of tickets closed. Basically "feature complete, test green, merged, move on!". In that context, it isn't really "important" that the tests that are green are also refactored by the thing itself, just that they are green. It is a symptom of a corporate environment where the focus is on these "productivity" metrics. From that perspective I can fully see the appeal for LLM heavy workflows as they most certainly will have an impact on metrics like "tickets closed" or "lines of code written".
> That is quite the defeatist attitude. Society becoming shittier isn’t inevitable, though inaction and giving up certainly helps that along.
The hypothetical that we're 8x as productive but the work isn't as fun isn't "society becoming shittier".
How is everyone working shitty jobs not "society becoming shittier"? Seems pretty awful
"Society" is more than just software developers.
We are very well paid for very cushy work. It's not good for anyone's work to get worse, but it's not a huge hit to society if a well-paid cushy job gets less cushy.
And presumably people buy our work because it's valuable to them. Multiplying that by 8 would be a pretty big benefit to society.
I don't want my job to get less fun, but I would press that button without hesitation. It would be an incredible trade for society at large.
Maybe everybody's job should be cushy instead. We were not put on this earth to toil away for a bunch of rich fucks
Well lets think about it.
Software devs jobs getting less cushy is no biggie. We can afford to amp up the efficiency. Teachers jobs got "less cushy" -> not great for users/consumers or the ppl in those jobs. Doctors jobs got "less cushy" -> not great for users/consumers or the ppl in those jobs. Even waiters/ check-out staff, stockists jobs at restaurants, groceries and AMZ got "less cushy" -> not great for users/consumers or the ppl in those jobs. at least not when you need to call someone for help.
These things are not as disconnected as they seem. Businesses are in fact made up of people.
If you think software development is cushy, I wonder what kind of software you're writing. Because there are different levels; getting something to work is not the same thing as writing maintainable, high quality software.
I've seen plenty enough people try, really try, to get into software development; but they just can't do it.
My cushy software job has burned me out so badly that I am on medical leave with massive memory problems and a bit of concern about my heart
So I mean... Yeah
Is software more comfortable generally than many other lines of work? Yes probably
Is it always soft and cushy? No, not at all. It is often high pressure and high stress
Okay, but the reality of society becoming shittier is society becoming shittier.
> That is quite the defeatist attitude. Society becoming shittier isn’t inevitable, though inaction and giving up certainly helps that along.
This feels like kicking someone when they’re down! Given the current state of corporate and political America, it doesn’t look likely there will be any pressure for anything but enshittification to me. Telling people at the coal face to stay cheerful seems unlikely to help. What mechanism do you see for not giving up to actually change the experience of people in 10 ish years time?
> Telling people at the coal face to stay cheerful seems unlikely to help.
That isn't what they said tho. They said you have to do something, not that you should just be happy. Doing something can involve things that historically had a big impact in improving working conditions, like collective action and forming unions.
The opposite advice would be: "Everything's fucked, nothing you can do will change it, so just give up." Needless to say that is bad advice unless you are a targeted individual in a murderous regime or similar.
> That is quite the defeatist attitude. Society becoming shittier isn’t inevitable, though inaction and giving up certainly helps that along.
Correct. But it becoming shittier is the strong default, with forces that you constantly have to fight against.
And the reason is very simple: Someone profits from it being shittier and they have a lot of patience and resources.
The trick is not telling anyone you spent an hour to do 7 hours of work.
That's stupid and detrimental to your mental health.
You do it in an hour, spend maybe 1-2 hours to make it even better and prettier and then relax. Do all that menial shit you've got lined up anyway.
> The trick is not telling anyone you spent an hour to do 7 hours of work.
I wish that the hype crowd would do that. It would make a for a much more enjoyable and sane experience on platforms like this. It's extremely difficult to have actual conversations subjects when there are crowds of fans involved who don't want to hear anything negative.
Yes, I also do realize there are people completely on the other side as well. But to honest, I can see why they are annoyed by the fan crowd.
The most challenging thing I'm finding about working with LLM-based tools is the reduction in enjoyment. I'm in this business because I love it, and I'm worried about that going forward.
Yup. not sure if it's just me but the trend seems to be just ship slop as fast as you can, nothing else matters, just ship ship ship
> The excitement of getting a day's work done in an hour* (for example) is likely to fade once the expectation is to produce 8 of such old-days output per day.
It's not really about excitement or enjoyment of work.
It's the fear about the __8x output__ being considered as __8x productivity__.
The increase in `output/productivity` factor has various negative implications. I would not say everything out loud. But the wise can read between the lines.
I always feel most productive when I remove more code than I add.
For the longest time, IT workers were 'protected' from Marx's alienation of labor by the rarity of your skill, but now it's coming for you/us, too. Claude Code is to programmers what textile machines were to textile workers.
>In the capitalist mode of production, the generation of products (goods and services) is accomplished with an endless sequence of discrete, repetitive motions that offer the worker little psychological satisfaction for "a job well done." By means of commodification, the labour power of the worker is reduced to wages (an exchange value); the psychological estrangement (Entfremdung) of the worker results from the unmediated relation between his productive labour and the wages paid to him for the labour.
Less often discussed is Marx's view of social alienation in this context: i.e., workers used to take pride in who they are based on their occupation. 'I am the best blacksmith in town.' Automation destroyed that for workers, and it'll come for you/us, too.
Nope, not until AI is writing high quality, maintainable software; and no one knows if that's even possible yet.
What caused textile machines to replace the manual labor wasn’t the quality of their output, it was quantity. In fact, manually made clothing was of higher quality than what was machine-produced.
A low quality fabric makes the fashion police come and arrest you.
Low quality software kills people.
Safety critical (will kill someone if not bug free) code makes up <1% of what's shipped, safety clothes which must be of high quality else risk harm to someone make up a similarly small percent
Both will stay manual / require high level of review they're not what's being disrupted (at-least in near term) - it's the rest.
Yes, but they still filled their purpose.
AI slop code doesn't even work beyond toy examples.
In fairness to AI, many software devs are not writing high quality, maintainable software
But in fairness to human devs, most are still writing software that is leagues better than the dog shit AI is producing right now
Why wouldn’t it be possible if meat computers can do it more or less reliably? The construction of such a machine is a matter of time; whether it’s a year or a century is anyone’s guess.
When it is eventually made, though… it’s either aligned or we’re in trouble. Job cushiness will be P2 or P3 in a world where a computer can do everything economically viable better than any human.
Speak for yourself, I'm not a computer.
Your opinion on the matter is not relevant whether you are or aren't one. Besides, if our brains aren't computers, what are they?
> what are they?
They are brains. I think it's on you to prove they're the same, rather than assuming they're the same and then demanding proof they aren't!
Turing machines are universal. Anything that does anything is, at most, a Turing machine.
That is certainly how it played out for me. Give your employers an inch and they will take a mile.
Exactly, maybe "prompt engineering" is really a skill, but the reward for getting better at this is just pumping out more features at a low skill grade. What's excited about this ? Unless I want to spend all my time building minimum viable product.
Prompt engineering is just writing acceptance criteria; it's moving from someone who writes code to someone who writes higher level feature descriptions. Or user stories, if you will.
Thing is though, many people don't know how to do that (user stories / acceptance criteria) properly, and it's been up to software developers to poke holes and fill in the blanks that the writer didn't think about.
> The tradeoff of higher velocity for less enjoyment may feel less welcome when it becomes the new baseline and the expectation of employers / customers. The excitement of getting a day's work done in an hour* (for example) is likely to fade once the expectation is to produce 8 of such old-days output per day.
That's why we should be against it but hey, we can provide more value to shareholders!
Short-term, automated tech debt creation will yield gains.
Long term the craftsperson writing excellent code will win. It is now easier than ever to write excellent code, for those that are able to choose their pace.
Given it's 2025 and companies saddled with tech debt continue to prioritize speed of delivery over quality, I doubt the craftperson will win.
If anything we'll see disposable systems (or parts) and the job of an SE will become even more like a plumber, connecting prebuilt business logic to prebuilt systems libraries. When one of those fails, have AI whip up a brand new one instead of troubleshooting the existing one(s). After all, for business leader it's the output that matters, not the code.
For 20+ years business leaders have been eager to shed the high overhead of developers via any means necessary while ignoring their most expensive employees' input. Anyone remember Dilbert? It was funny as a kid, and is now tragic in its timeless accuracy a generation later.
> it's 2025 and companies saddled with tech debt continue to prioritize speed of delivery over quality
Maybe. I'm seeing the opposite - yes, the big ships take time to turn, but with the rise of ransomware and increasing privacy regulation around the world, companies are putting more and more emphasis on quality and avoiding incidents.
Yes there will be a class of developer like that, but it would only be considered winning if you're satisfied with climbing some artificial institutional hierarchy.
Indeed, the job of an SE is deviating further and further from code, much like how very few people write assembly anymore.
An earlier iteration of your reply said "Is that really winning?" The answer is no. I don't think any class of SE end up a winner here.
Climbing institutional hierarchy usually comes with being rewarded with more credits that I can trade for food, and I like eating food.
Avocado toast strikes again
Can you give an example that's playing out today?
>The tradeoff of higher velocity for less enjoyment may feel less welcome when it becomes the new baseline and the expectation of employers / customers.
This is precisely the question that scares me now. It is always so satisfying when a revolution occurs to hold hands and hug each other in the streets and shout "death to the old order". But what happens the next morning? Will we capture this monumental gain for labor or will we cede it to capital? My money is on the latter. Why wouldn't it be? Did they let us go home early when the punch card looms weaved months worth of hand work in a day? No, they made us work twice as hard for half the pay.
If there are 8 days per day worth of work to be done (which I doubt), why wouldn’t you want to have it done ASAP? You’re going to have to do it eventually, so why not just do it now? Doesn’t make sense. You act like they’re just making up new work for you to do when previously there wouldn’t have been any.
Yes, work will expand to fill all your available hours due to unaligned incentives between who does the work (the SWE in this example) and who decide the quantity, timeline, and cost of work.
If the SWE can finish his work faster, 8x faster in this case, then backlogs will also be pushed to complete 8x faster by the project manager. If there are no backlogs, new features will be required at 8x faster / more by sales team / clients. If no new features are needed, pressures will be made until costs are 8x lower by finance. If there are no legal, moral, competitive, or physical constraints, the process should continue until either there’s only a single dev working on all his available time, or less time but for considerably less salary.
The reward for being faster is to do more work.
In my experience, listening to music engages the creative part of your brain and severely limits what you can do, but this is not readily apparent.
If I listen to music, I can spend an hour CODING YEAH! and be all smug and satisfied, until I turn the music off and discover that everything I've coded is unnecessary and there is an easier way to achieve the same goal. I just didn't see it, because the creative part of my brain was busy listening to music.
From the post, it sounds like the author discovered the same thing: if you use AI to perform menial tasks (like coding), all that is left is thinking creatively, and you can't do that while listening to music.
> discover that everything I've coded is unnecessary and there is an easier way to achieve the same goal
In my experience, there is no good shortcut to this realization. Doing it wrong first is part of the journey. You might as well enjoy the necessary mistakes along the way. The third time’s the charm!
I don't think that's down to music per se, but a more generalized thing. Software developers love being in a flow state, some of them pursue it all the time (...guilty) and get frustrated when their job changes (e.g. moving towards management) so they spend less time in that flow state.
But also, this can create waste, in that people write the Best Code Ever in their flow state (while listening music or not), but... it wasn't necessary in the first place and the time spent was a waste. This can waste anything from an hour to six months of work (honestly, I had a "CTO" once who led a team of three dozen people or so who actually went into his batcave at home for six months to write a C# framework of sorts that the whole company should use. He then quit and became self-employed so the company had to re-hire him to make sense of the framework he wrote. I'm sure he enjoyed it very much though.)
I describe it slightly differently. Similar to what the author described, I'll first plan and solve the problem in my head, lay out a broad action plan, and then put on music to implement it. But, for me the music serves something akin to clocks in microcontrollers (and even CPUs), it provides a flow that my brain syncs to. I'm not even paying attention to the music itself, but it stops me from getting distracted and focus on the task at hand.
I'm sorry but that's nonsense. Listening to music is not a creative process, it does not at all take away creativity from somewhere else.
I've never, ever, ever once in 40 years of coding listened to music while coding and later found the code "unnecessary" or anything of the sort.
I engage in many creative pursuits outside of coding, always while listening to music, and I can confidently say that music has never once interfered in the process or limited the result in any way.
I just think it's distracting. I get caught up listening to the lyrics and kind of mentally singing along, stuff like that which disrupts my thought and distracts from what I actually want to be thinking about.
I think this is individual, I have the same problem in social settings - if I'm having a conversation and a song I like is playing in the background I some times stop listening to the conversation and focus on the music instead, unintentionally.
My solution is to listen to music without vocals when I need to focus. I've had phases where I listen to classical music, electronic stuff, and lately I've been using an app I found called brain.fm which I think just plays AI generated lo-fi or whatever and there's some binaural beats thing going on as well that's supposed to enhance focus, creativity etc. I like it but some times I go back to regular music just because I miss listening to something I actually like.
From the masterpiece, Tragedy of the Man, describing the future where everything is done in the name of efficiency:
THE GREYBEARD You left your workroom in great disarray.
MICHELANGELO Because I had to fabricate the chair-legs To the quality as poor as it can be. I appeal’d for long, let me modificate, Let me engrave some ornaments on it.
They did not permit. I wanted as a chance The chair-back to change but all was in vain. I was very close to be a madman And I left the pains and my workroom, too. (stands back)
THE GREYBEARD You get house arrest for this disorder And will not enjoy this nice and warm day.
Can you explain why it is a masterpiece? Im just curious.
I’d probably drop GenAI before I dropped the music that allows me to focus. Also, at this stage of my career, I mainly code for fun, and blasting music across the house is part of it.
https://www.youtube.com/watch?v=DrA8Pi6nol8
If the price is music, then it’s too expensive.
This is why I reject every Teams call
I use Zoom rather than Teams, but have no problems playing background music with Spotify. Just have to make sure that “share computer audio” is not enabled when sharing your screen. Also, when I was using the mic of my bluetooth headphones, any music played would be mono and lower quality due to bluetooth bandwidth. Since moving to using a dedicated mic on my desk, the bluetooth headphones are output only and back to good quality stereo (MacOSX and Bose QC35).
Not too long ago, I installed a system mixer/EQ on my work computer so I could mix ambient-ish music with Zoom calls while giving space to the (meeting room's) vocals. It works great.
Sounds great… I’m a hobbyist audio engineer so can’t resist tinkering. My mic input goes to Rogue Amoeba’s Audio Hijack which allows a chain of VST plugins to be used. I use a gentle noise gate, followed by Supertone Clear. This is excellent for removing any noise mixed in with my voice. It handles the dehumidifier near me with ease, and can also handle the portable aircon on heatwave days, which can be very loud. Next in the chain is some gentle and transparent compression, and then the output goes to the free Blackhole virtual audio device. Zoom then picks up that device. Tweaked Zoom settings and “original sound for musicians” button then stops it from compromising the sound as much as possible. I am tempted to have some EQ plugin tweaks too, but I love the character of the mic so I don’t mess around with it.
EQing the music played sounds interesting. I’ll look at the options. I tend to just have it at a level low enough that I can hear all speakers on the call.
My position isn't due to incapability
they can't hear if it is them or music on my phones...
Robots don't listen to music, I'm pretty sure that's the longer term plan.
> writing a blurb that contains the same mental model
Good nugget. Effective prompting, aside from context curation, is about providing the LLM with an approximation of your world model and theory, not just a local task description. This includes all your unstated assumptions, interaction between system and world, open questions, edge cases, intents, best practices, and so on. Basically distill the shape of the problem from all possible perspectives, so there's an all-domain robustness to the understanding of what you want. A simple stream of thoughts in xml tags that you type out in a quasi-delirium over 2 minutes can be sufficient. I find this especially important with gpt-5, which is good at following instructions to the point of pedantry. Without it, the model can tunnel vision on a particular part of the task request.
Hard to tell if this is parody or not but I chuckled at the idea of replacing tedious programming with a "simple stream" of handwritten XML.
It's not parody. I'm trying to provide the LLM with what's missing, which is a theory of how the system fits into the world: https://pages.cs.wisc.edu/~remzi/Naur.pdf
Without this it defaults to being ignorant about the trade-offs that you care about, or the relevant assumptions you're making which you think are obvious but really aren't.
The "simple stream" aspect is that each task I give to the LLM is narrowly scoped, and I don't want to put all aspects of the relevant theory that pertains just to that one narrow task into a more formal centralized doc. It's better off as an ephemeral part of the prompt that I can delete after the task is done. But I also do have more formal docs that describe the shared parts of the theory that every prompt will need access to, which is fed in as part of the normal context.
So like: <prompt> <intent>Generate a metaphor-rich essay on the fragility of digital memory in the age of infinite storage</intent>
</prompt>Fun fact: “praf” (seen in the website domain, praf.me) in Romanian means dust.
If you say “you are praf” in Romanian it means that you are f*cked, wasted, done for, etc.
The same word is "prach" in Czech: dust, powder. The "ch" sounds like "kh" (soft k?). In Czech slang prachy means cash, money.
That's an argument I had with a friend last year. I told him generative AI will make writing code easier, but the life of whoever is writing it far worse. Because writing code without using AI is done with some sort of due diligence: you memorize some stuff, look up other stuff in the docs or online, and you take some time actually solving the problem you have. If you succeed, you would've spent the needed time at YOUR pace, with an intrinsic reward of feeling good that you achieved something. With AI, on the other hand, you are in semi-cheat mode, throwing prompts after prompts and now you are trying to catch someone/something else's pace, zero reward, and more mentally exhausted.
The best approach is to use AI only when you are stuck and looking for potential solutions, but we all know that is not going to happen unless you have extreme self-control.
It definitely changed how I get into flow state for me. But music still works, if not even better when coding with AI (listening to: techno, electro, edm). Generally my flow is to sit down, make a small plan of what I will work on, fire off 2 agents to work on different parts of the code that are lower hanging fruits (takes 2-10 mins for them to complete). Then while this is busy, map out some bigger tasks.
Agents finish, I queue them up with new low hanging fruits, while I architect the much bigger tasks, then fire that off -> Review smaller tasks. It really is a dance, but flow is much easier achieved when I do get into it; hours really just melt together. The important thing to do is to put my phone away, and block all and any social media or sites I frequent, because its easy to get distracted when agents aren just producing code and you're sitting on the sidelines.
I did that for 2 hours yesterday and then scrapped everything the agents did because it didn’t work and left everything in disarray.
It takes quite the practice. At least I have been shipping stuff to users like this for the entire year.
That's not the same flow state experienced by programmers.
While programming, it's possible to get into a trance-like state where the program's logic is fully loaded and visible in your mind, and your fingers become an extension of your mind that wire you directly to the machine. This allows you to modify the program essentially at the speed of thought, with practically zero chance of producing buggy code. The programmer effectively becomes a self-correcting human interpreter.
Interrupting someone in this state is incredibly disruptive, since all the context and momentum is lost, and getting back into the state takes time and focus.
What you're describing is a general workflow. You can be focused on what you're doing, but there's no state loaded into memory that makes you more efficient. Interruptions are not disruptive, and you can pick up exactly where you left off with ease. In fact, you're constantly being interrupted by those agents running in the background, when they finish and you give them more work. This is a multitasking state, not flow.
So the article is correct. It's not possible to get into a flow state while working with ML tools. This is because it is an entirely different activity from programming that triggers different neural pathways.
I encounter a problem which is my social media usage increase. The time when you wait for the agent to write code is kinda silly :) You can not switch to do other things as it will make your focus shift away from the code. So usually I just dumb scroll for 1 minute
You're expected to run several projects in parallel with latency hiding like a human GPU. No downtime!
For me, it's 1 minute bullet chess.
What kind of projects are people doing that are feeling the increased velocity?
Whenever I need some sort of quick data pipeline to modify some sort of file into another format, or do some batch transformation, or transform some sort of interface description into another syntax, or things like that, that would normally require me to craft a grep, awk, tr, etc pipeline, I can normally simply paste a sample of the data and with a human language description get what I need. If it’s not working well I can break up the steps in smaller steps.
In my experience, it seems the people who have bad results have been trying to get the AI to do the reasoning. I feel like if I do the reasoning, I can offload menial tasks to the AI, and little annoying things that would take one or two hours start to take a few minutes.
That very quickly adds up to some real savings.
AI is a force multiplier for experienced people.
The ones who know what they want to do, how it should be done, but can't really be arsed to read the man pages or API docs of all the tools required.
These people can craft a prompt (prompt engineering :P) for the LLM that gets good results pretty much directly.
LLMs are garbage in garbage out. Sometimes the statistical average is enough, sometimes you need to give it more details to use the available tools correctly.
Like the fact that `fd` has the `-exec` and `--exec-batch` parameters, there's no need to use xargs or pipes with it.
Every kind of project is faster with AI, because it writes the code faster.
Then you have to QA it for ages to discover the bugs it wrote, but the initial perception of speed never leaves you.
I think I'm overall slower with AI, but I could be faster if I had it write simple functions that I could review one by one, and have the AI compose them the way I wanted. Unfortunately, I'm too lazy to be faster.
It's like working with a junior coder or an offshore consultant that always says yes.
Of course you need to check their work, but also the better your initial project plan and specifications are, the better the result.
For stuff with deterministic outputs it's easy to verify without reading every single line of code.
Yeah, I mostly tend to work on web apps, where it's pretty hard to test all the interactions, so I'm hit by the bugs more often.
With web apps playwright-mcp[0] is essential IMO. It lets the AI Agent check its own work before claiming it's done.
With that it can see any errors in the console, click through the UI and take screenshots to analyse how it looks giving it an independent feedback loop.
[0] https://github.com/microsoft/playwright-mcp
That's fantastic, thank you! I've had to do all that manually, this sounds like it'll save me a lot of time.
Where I work there are like 2x as many front end developers as there is need for. They spend an insane amount of time doing meetings, they require approval of 2 different people for every simple CSS change.
Their job is to do meetings, and occasionally add a couple of items to the HTML, which has been mostly unchanged for the past 10 years, save for changing the CSS and updating the js framework they use.
Pretty much what somebody else said: AI takes over simple tasks, the "fluff" around the business logic, error handling, stuff like that, so I can focus on doing the harder stuff at the core.
Exactly!
90% of what the average (or median) coder does isn't in any way novel or innovative. It's just API Glue in one form or another.
The AI knows the patterns and can replicate the same endpoints and simple queries easily.
Now you have more time to focus on the 10% that isn't just rehashing the same CRUD pattern.
> 90% of what the average (or median) coder does isn't in any way novel or innovative. It's just API Glue in one form or another.
I hear this from people extolling the virtue of AI a lot, but I have a very hard time believing it. I certainly wouldn't describe 90% of my coding work as boilerplate or API glue. If you're dealing with that volume of boilerplate/glue, isn't it incumbent upon you to try and find a way to remove that? Certainly sometimes it isn't feasible, but that seems like the exception encountered by people working on giant codebases with a very large number of contributors.
I don't think the work I do is innovative or even novel, but it is nuanced in a way I've seen Claude struggle with.
To be more exact, 90% of the _code_ I write is mostly just different types of API glue. Get data from this system, process it and put it in another system.
It's the connectors that are 90-95% AI chow, just set it to task with a few examples and it'll have a full CRUD interface for your data done while you get more snacks.
Then you can spend _more_ of your limited time on the 10% of code that matters.
That said, less than 50% of my actual time spent on the clock is spent writing code. That's the easiest part of the job. The rest is coordinating and planning and designing.
> To be more exact, 90% of the _code_ I write is mostly just different types of API glue
I assumed you were only talking about the actual code. It still seems really odd. Why is there so much unavoidable boilerplate?
Because I need to have a controller that does CRUD operations.
It has a specific amount of code I need to write just to add the basic boilerplate of receiving the data and returning a result from the endpoint before I can get to the meat of it.
IIRC there are no languages where I can just open an empty file and write "put: <business logic>" and it magically knows how to handle everything correctly.
Does the "<business logic>" part involve a bunch of irreducible boilerplate too or something? What's it like?
If it doesn't, then I feel like even in the JavaScript world of 2015 you could write "app.put("/mypath", business_logic)" and that would do the trick, and that was a very immature language ecosystem.
I'm slowed down (but perhaps sped up overall due to lower rewrites/maintenance costs) on important bits because the space of possibilities/capabilities is expanded, and I'm choosing to make use of that for some load bearing pieces that need to be durable and high quality (along the metrics that I care about). It takes extra time to search that space properly rather than accept the first thing that compiles and passes tests. So arguably equal or even lower velocity, but definitely improved results compared to what I used to be capable of, and I'm making that trade-off consciously for certain bits. However that's the current state of affairs, who knows what it'll look like in 1-2 years.
How do you know they’re durable and high quality?
I do it based on my subjective judgement, somewhat informed by quantitative measurements of metrics I care about like throughput.
I’m building a moderately complex system with FastAPI + PG + Prefect executing stuff on Cloud Run, and so long as I invest in getting the architecture and specs right, it’s really a dream how much of the heavy lifting and grunt work I can leave to Claude Code. And thank god I don’t have to manage Alembic by myself.
Random example:
I set up a model in DBT that has 100 columns. I need to generate a schema for it (old tools could do this) with appropriate tests and likely data types (old tools struggled with this). AI is really good at this sort of thing.
There's a local website that sells actual physical Blu-rays. Their webshite is a horror show of Javascript.
I had Claude Code build me a Playwright+python -based scraper that goes through their movie section and stores the data locally to an sqlite database + a web UI for me to watchlist specific movies + add price ranges to be alerted when it changes.
Took me maybe a total of 30 minutes of "active" time (4-5 hours real-time, I was doing other shit at the same time) to get it to a point where I can actually use it.
Basically small utilities for limited release (personal, team, company-internal) is what AI coding excels at.
Like grabbing results from a survey tool, adding them to a google sheet, summarising the data to another tab with formulas. Maybe calling an LLM for sentiment analysis on the free text fields.
Half a day max from zero to Good Enough. I didn't even have to open the API docs.
Is it perfect? Of course not. But the previous state was one person spending half a day for _each_ survey doing that manually. Now the automation runs in a minute or so, depending on whether Google Sheets API is having a day or not =)
CRUD work, Boilerplate config for network stuff, converting lots of oracle stored procedures. It's saving me days.
It’s a lot more high-level executive functioning now, instead of grinding through endless syntax and boilerplate. Easy to mindlessly code to music, much harder to think about what you want to do next, and evaluate if the result you just got is what you really wanted.
Doing things faster comes way down the priority list where I work. We spend a lot of resources on understanding and improving the code, as well as breaking knowledge silos.
Because the people running the show are experienced software devs, not AI clowns.
I cannot run or code to music. I might be playing music while doing so, but it's super distracting and it's basically just me working at 50% while enjoying myself. I worked with a bunch of guys that always always always had a web radio pumping cheesy hard style stuff all day long.
Got nothing done.
Finally someone emphasized upon the cognitive load of AI-assisted coding.
It definitely makes me faster but it's consistent prompt->code-review->prompt->code-review->scratch->prompt-code->review cycle which just requires extreme focus.
The line that stood out for me was that "a 4-hour session of AI coding is more cognitively intense than a 4-hour session of non-AI coding."
Many programmers are rejecting AI coding because they miss the challenge they enjoy getting from conventional programming but this author finds it even more challenging. Or perhaps challenging in a different way?
There is a distinction I believe between challenging and focusing. The difference lies in difficulty (the former being more dificult) and workload (the latter being more intellectualy labor intensive), which is an interesting approach to intellectual menial labor as distinct from intellectual craft.
I think there are (at least) two types of programmer - I am the kind of programmer who wants everything done right. Others don't care as long as it works and the boss is happy.
I suspect that the type of programmer who enjoys vibe coding is the latter. For me it's pretty tiring to explain everything in excruciating detail, it's often easier to just write the code myself rather than explain in English how to write it.
It feels like I am just doing the hard part of programming all the time - deciding how the app should work and how the code should be structured etc, and I never get those breaks where I just implement my plan.
I suspect the difference lies in people who think in code versus people who translate their thoughts into code
I think in code and programming concepts when I am writing software . I don't really know how to explain that, but I don't often feel like there is any friction between my thoughts and the code I make
I think that many coders do not have this. They have an extra "translation" step that introduces friction into their workflow
I don't experience this friction, so LLM coding introduces new friction that I don't like
They do experience this friction, so LLM coding doesn't introduce new friction for them, it may transform their previous friction into a new form that is easier for them to navigate
I don't know. Maybe I'm talking out my ass, this is just a random theory based on no real evidence
I let the AI first generate a outline of how it would do it as markdown. I adapt this and then let it add details into additional markdown files about technical stuff, eg how to use a certain sdk and so on. I correct these all. And then I let the AI generate the classes of the outline one by one.
I cannot code to music at all. I miss either the music or the code or keep switching and get tired. I can do a mechanical job, e.g. adding records to a database.
(I also find AI repulsive and have no intention to engage in anything AI-related. Recently I turned off AI "help" in DDG.)
> For frontend code and my side projects, AI coding seems to be even more effective and actually reduces the cognitive load, winning in all dimensions.
Can we see this frontend code? For research purposes, of course.
What happened to coding for joy in your free time? At work I do whatever the company wants as long as I get my money at the end of the month. Java? Sure boss. Golang? Let’s do it. LLMs? Whatever you want. TDD? Yep.
At home I still plan and devise my own worlds with joy. I may use LLMs for boring or repetitive tasks, or help or explanation; but I still can code better than the day before.
As usual, work != career.
Even in the fun stuff there's dog work to do and the LLMs can definitely help there.
My theory as a none scientist is that you need a different part of the brain to think about AI prompts compared to coding yourself. Or maybe that whatever though process you need for coding intersects with the part that enjoys listening to music. And because of that intersection you can't focus on both at the same time.
He’s talking about being in a state of flow - it’s a lovely feeling when you can get into it.
CAN you get into a state of flow when directing an LLM? I don't have a lot of experience using LLMs to code, but it always feels like I'm coaching a junior staff member. No way to flow that, IMHO.
I tend to agree. Even the LLM autocomplete in Cursor feels so intrusive that I cannot get into flow when it is turned on
It’s the opposite for me. I’ve never been able to listen to music while coding as my thoughts would drown it out or it would keep me from thinking so I’d shut it off. However if I am vibe coding my brain is basically idle and can handle some music
I don't listen to music while doing code reviews either. It also happens to be my least favourite part of the job. The LLM agents just make it feel like I'm constantly code reviewing and I don't think it makes me more productive overall.
I'm curious which models the OP is using that produce code so quickly and accurately? I mostly use Claude Code, which is accurate, but it isn't very fast. I certainly don't feel like I'm producing piles of code with it.
I actually still listen to music heavily when in the zone with AI coding. Totally agree that the focus time feels much more intense now than it did before AI.
This resonates with me, a lot. Few months ago I wrote about my initial thoughts here: https://www.cleverthinkingsoftware.com/programmers-will-be-r... Things have changed quite a bit since, but I'm glad they changed for the better. Or so it seems.
I found I couldn't listen to music with words in them while coding. Maybe try wordless music, or music that is in a language you don't understand.
That's why metal works well here.
JimTV on YT has great programming music.
Exactly, came here to say this, it happened long ago for me. Classical, jazz, electronica… all great for coding and vibing alike, for me.
> Absolutely—I feel like I can ship at a crazy velocity now, like I have a team of interns at my disposal to code up my every silly demand.
I also wonder what type of simple CRUD apps people build that have such a performance gain? They must be building well understood projects or be incredible slow developers for LLMs to have such an impact, as I cant relate to this at all.
I wonder whether we'll be able to look back on this period in 10 years time and save definitively whether the wide spectrum of responses to LLMs was perception or real feature of our differing jobs.
Different people have different jobs doing different things? Doesn’t seem shocking to me.
But I certainly wouldn’t assume that other people’s jobs are simple or boring just because they don’t look like yours.
Given that AI tools do not deliver well on barely understood fields one can only assume people work on simple things.
Which is absolutely no shame. But people shouldn't expect these gains for their job if they work in less understood environments.
Most non CRUD AI code implementations are flawed/horrendous.
That’s right, it’s good at things that are common. If your job is mostly filled with uncommon tasks, it won’t be good at helping you.
But for the rest of us, who have a mix of common/boring and uncommon/interesting tasks, accelerating the common ones means spending more time (proportionally) on less common tasks.
Unfortunately we don’t seem to great at classifying tasks as common or uncommon, and there are bored engineers who make complex solutions just to keep their brain occupied.
There are people using Claude to make entire 3d MMO games, so ...
do you have any particular game in mind?
It's hard to get in the zone with an LLM doing crazy stuff.
For instance this week when setting up a Django/Wagtail project GPT helpfully went ahead and created migration files in text instead of "makemigrations". Otherwise it did a bang up job and saved me a couple of hours.
Just no way I can get in the zone wrangling that kind of thing all day.
But I'm not sure getting in the coding zone frequently was all that mentally healthy so oh well.
I dunno, it is a bit different leveraging a model, but I still listen to music coding. It does depend on the music. I need to listen to really brutal stuff (Arsis, Thyrfing, Dissection, etc.) to focus, though
Play techno with high BPM and watch your commits skyrocket
I like vibe coding, and I also enjoy listening to music.
I can work to music anytime as long as it has no lyrics.
Who is testing your code? No one? You?
This is a other “trust me” post about AI.
I've never bothered listening to music while coding. If I'm in the zone, it's entirely extraneous and I don't even hear it.
At my first job in Silicon Valley, I used to code right on the production floor totally oblivious to what was going on.
Coding is an art
Do things the way you like instead of saying "I miss it".
The answers are in the footnote, switching to frontend is the way.
You are now an engineering manager. Enjoy!
Another one promoting himself
Killed all the fun?