For instance, the ones that look at it from an economics perspective, security perspective, long term maintainability perspective and so on. For each of these there are pros and cons.
The more experience I get the harder the job seems tbh
I'm a 23+ year dev; among the highest level ICs in my org.
It's still craft, its just that the craft is different. I don't write *.ts, *.cs files anymore; I write *.md files that other devs are using, that we're using as guardrails, that ensures that we minimize the slop while increasing speed and basically lift every developers level up by several notches.
I went from building one kind of framework/platform level artifact to another type of framework/platform level artifact.
If one's perspective is that it's just a shift in what "craft" means, then it's still craft. I'm still building systems; just a different kind of system.
But there is a price to pay: the code that you generate is not the code that you understand and when things go pear shaped you will find that that deterministic element that made compilers so successful is missing from code generated from specs dumped into an AI. If you one-shot it you will find that the next time you do this your code may come out quite different if it isn't a model that you maintain. It may contain new bugs or revive old ones. It may eliminate chunks of the code and you'll never know and so on.
There is a reason that generated code always had a bit of a smell to it and AI generated code is no different. How much time do you spend on verifying that it actually does what's written on the tin?
Do you write your own tests? Do you let the AI write the tests and the code? Are you familiar with the degree to which AIs can be manipulated to do stuff that you thought they weren't supposed to? (A friend of mine just proved this to his boss by bribing an AI with a 'nice batch of pure random data' to put a piece of unreviewed code into production by giving itself the privileges required to do so...)
Quality and consistency are going up, not down. Partially because the agents follow the guidance much more closely than humans do and there is far less variance. Shortcuts that a human would make ("I'll just write a one-off here"), the agent does not...so long as our rules guide it properly ("Let me find existing patterns in the codebase.").
Part of it is the investment in docs we've made. Part of it is that we were already meticulous about commenting code. It turns out that when the agents stumble on this code randomly, it can read the comments (we can tell because it also updates them in PRs when it makes changes).
We are also delivering the bulk of our team level capabilities via remote MCP over HTTP so we have centralized telemetry via OTEL on tool activation, docs being read by the agents, phantom docs the agent tries to find (we then go and fill in those docs).
There are some studies about maintaining attention over longer periods of time when there is no action required. It will be difficult to keep that up forever so beware of review fatigue and bake in some measures to ensure that attention does not diminish over time.
Over enough time, this gap closes and the need for reviews goes down. This is what I've noticed as we've continued to improve the docs: PRs have stabilized. Mid-level devs that just months ago were producing highly variant levels of quality are now coalescing on a much higher, much more consistent level of output.
There were a lot of pieces that went into this. We created a local code review skill that encodes the exact heuristics the senior reviewers would use and we ask the agent to run this in AGENTS.md. We have an MCP server over HTTP that we use to deliver the docs so we can monitor centralized telemetry.
The objective is that at some point, there will be enough docs and improved models that the need for human reviews decreases while quality of code reaches a steady state that is more consistent than any human team of varying skill level could produce.
One thing we've done is to decouple the docs from the codebase to make it easier to update the docs and immediately distribute updates orthogonal to the lifecycle of a PR.
(I'll have a post at some point that goes into some of what we are doing and the methodology.)
Ouch. Managing human coders has been described as herding cats (with some justice). Getting humans to follow standards is... challenging. And exhausting.
Getting AIs to do so... if you get the rules right, and if the tool doesn't ignore the rules, then you should be good. And if you're not, you still have human reviews. And the AI doesn't get offended if you reject the PR because it didn't follow the rules.
This is actually one of the best arguments for AIs that I have seen.
In some cases, it was "instant"; dev's MCP server connected to our docs was down -> terrible PR. We fix the MCP connection and redo the PR -> instantly follows the guides we have in place for best practices.
Okay that's pretty hilarious. Everyone has a vice!
Maybe that's another way of saying: I was trained as a designer, and now the distinction between design (read: architecture, service-design, product, ux, cx) and programming is blurring.
All I'm seeing around me is people dropping best practices in a FOMO driven push for speed: let's stop reviews, let's drive 5 agents in parallel, let's not even look at the code!
This is going to blow up.
Only after we pick up the remains we'll find a more sustainable approach for AI usage. I suspect that version will still require crafters.
If we end up in a place where the craft truly is dead, then congratulations, your value probably just dropped to zero. Everyone who's been around startup culture knows the running jokes about those 'I have a great idea, I just need someone to code it' guys. Now you're one, and you'll find how much ideas are worth.
We are way past wringing our hands over agentic engineering. Every startup and all fast moving companies are onboard. They don't hand code anymore. There will not be some code quality crisis that will stop everyone in their tracks. I'm trying to cope with this too, but I don't think the best path is praying for failure.
Provide some examples then? Everyone who is all in on agentic code are pretty vocal about it. Who is declaring the opposite stance? Anyone?
Reality remains in the middle, but there are plenty of examples of either extreme right now.
You can’t just pretend it’s startups doing all the agentic engineering. They’re just the ones pushing the boundaries on best practices the most aggressively.
I work at a massive health care company. They're 100% on the AI bandwagon and are putting AI everywhere they can. Billing, Software, DevOps, everywhere. If you think you can give an Agent some information and have go to work for some user, its 100% on the table for the company to do and either a) then outsource the rest offshore or b) lay the person off or shrink the department to increase the bottom line.
Your healthcare, right now, is being offloaded to AI agents and bots and this is only the beginning.
This is a good call out, but I'm talking to a lot of friends at other companies. So my perspective is informed by both news and personal anecdote.
Both big tech and startups are now full of people working at 10x, features are written as fast as PMs can think them, monoliths self heal with agents buzzing over them.
10x means 10 times the outcomes in a given amount of time, so did you see the last iOS version pack a decade worth of features in a single release?
Do you remember when meta moved their backend to rust in a month?
What about Microsoft software not having a single bug in a year?
Yeah, me neither.
If not productivity, what’s the result AI is getting that is disruptive enough to make our previous work obsolete?
You can choose not to believe what I say (and I genuinely understand if you do), and I can simply keep on doing it. I'm not taking it out of thin air either. tuesday I did in 8h the work I scheduled for roughly 65h. Ok, so maybe it's not 10x, maybe it's 8x, same ball park.
And that's only talking about development. If I now get into other aspects....I have just spent the last 1.5 hours creating an incredibly detailed backcatalog of tasks and epics. This is the most detailed I have ever done so in my life and it has been working very well. It's like we merged the good of highly-detailed waterfall with the speed of agile.
Tee-hee: Watergile. (I'm sure some expert in the field will let me know I have coined a new term for something that very much has a name; excuse my ignorance in advance).
Nonetheless, I did this all by talking to the computer which is interfacing with my project management tools, the project documentation, and the project code. Full context on everything. In the past, I would have taken 3 or 4 days to create the same amount of tasks with a vaguely similar amount of detail. But, in truth, I wouldn't have spent so much time putting this love into the craft (!!) of planning a project, because it would exhaust me and feel like a waste of time.
Don't get me wrong, I totally see shit code being thrown everywhere by inferior AI models or people who can't tame the beasts, but the right people in my life are _clearly_ building out more, better tested code, and actually built with more care. Maybe it's not at the line-by-line level, but it certainly is from the end-product result (thinking of the actual end-user). I accept your mileage may vary -- this is my very personal experience.
Maybe it'll stop happening, who knows. Maybe price will be prohibitive, or maybe we'll have such an avalanche of ideas that weren't worth building that everyone will be overwhelmed and take a step back. Or maybe we won't develop juniors into the seniors of tomorrow. Or maybe everything will indeed implode once products are large enough that the original development speed can't be maintained anymore and expectations are mismatched.
What I do know is that it is definitely happening in my world, and I haven't had this much fun since I was a little kid learning to code.
"Embrace failure" is exactly the attitude every company is going to take. They've already been working at bottoming out our expectations.
We should have been running companies out of business with regulations and abandonment when their human-written software leaked our private data to criminals, or when their untested forced-updates shut down our systems and sent our IT teams scrambling, or when their unoptimized code forced us to upgrade our hardware or negated any performance gains we should have seen from investing in upgrades.
The quality, reliability, and security of the software we all use and depend on is going to nosedive, and companies already know they can get away with it. They aren't going to start caring about how we feel about that now. "Pay more and settle for less" is where we are today. "Embrace Failure" is the future we're sprinting towards.
https://factory.strongdm.ai/techniques
https://factory.strongdm.ai/products/attractor
If you've found better or ancillary resources, please share.
I think, then that the value of all knowledge work will have dropped to zero. Software engineering is, to my mind, “intelligence complete.” If you can do it with knowledge work, you can have software do it.
The fundamental mechanism of knowledge work is people. They haven’t changed at all. And what they need to understand and learn hasn’t changed. All the agents in the world and all of the methane guzzling data centres can’t tell you what to write in the specification nor if what the computer has generated faithfully implements that specification.
I have an idea for an “evidence editor.” Claude is waiting for me to tell it exactly what I want this thing to be. But I don’t know. I haven’t figured out how to square the various circles, even in my fantasies. Until I do, Claude sits and waits. And waits…
I just had the misfortune today to wade into one of their codebases. It's 60k lines of code for something that should have been simple, and it's an absolute fucking mess. I'm gonna have to rip out most of it and start over just to get it to do what we actually need it to do.
I use LLMs, they come in handy, and I use agents, but this "have agents do everything" nonsense is a disaster, and it's only going to get worse.
On the upside I'm getting paid to fix this shit show.
I think the craft is going to die and am not thrilled about it. I dont feel like there is a contradiction there
The thing about AI is that you don't have to use it for everything. Like any other tool you can use it as much as you'd like. Even though I like the craft, I find myself really enjoying the use of AI to do things like boilerplate code and simple tests. I hate crafting verbose grunt work, so I have AI do that. This in turn leaves me more time to do the interesting work.
I also enjoy using AI to audit, look for bugs, brainstorm, and iterate on ideas. When an idea is solid and fleshed out I'll craft the hard and interesting parts and AI-generate the boring parts.
Yes, sometimes I can also ask AI to evaluate things at the system level and it often has surprisingly good insights, but that is usually a collaboration where our powers combined comes up with a better solution. I enjoy that process, too.
I do sympathize with the people "in mourning". I feel like this is really about how your identify is tied up in what you do. I have generally identified as a command line wizard. The xkcd of the guy flying in with "perl" very much speaks to me. But AI absolutely crushes at this. It's not that useful a skill anymore. Now I identify more as a local AI expert instead :D
This is it for me. One thing that's important to my identify making things. And I have a lot of trouble saying I made a thing that I asked someone (or something) else to make for me.
I know you're going to say, "But I'm making things, too!" However...
I could crank out a project a day with Claude Code and slap them all up on GitHub for my green squares, and I could say that I made them all.
Just like I could crank out a novel a day with ChatGPT and say that I made them all.
Or I could use it to write 100 blog posts a day and say that I made them all.
In all those cases, I caused things to get made. But did I make them? I don't feel like I can honestly say I did. (And the copyright office is starting to have a thing or two to say about it, as well.)
This is what I struggle with. I like making things.
As a capitalist, sure, your cash is good with me. Tell me where to shoot and I'll shoot. But in terms of keeping my soul fed, it's a tough one.
A handful of well intentioned slop piles might be manageable, but AI enables spewing garbage at an unprecedented scale. When there's a limited amount of resources to expend on discussing, reviewing, fixing, and then finally accepting contributions a ton of AI generated contributions from random people could bring development to a halt.
The craft can move up a level too. You still can make decisions about the implementation, which algorithms to use, how to combine them, how and what to test -- essentially crafting the system at a higher level. In a similar sense, we lost the hand-crafting of assembly code as compilers took over, and now we're losing the crafting of classes and algorithms to some extent, but we still craft the system -- what and how it does its thing, and most importantly, why.
Twelve years ago I would have the bright idea of why not make a little, just a tiny little (what I would call now) preprocessor for Java which does the same thing in less characters and is clearer. Everyone would love it. Of course no one loved it. Well, I never implemented it. Because I got some sense: you can’t just make tiny little preprocessors, a little code generation here and there, just code-generate this and tweak after the fact. Right? It’s not principled.
You can cook up a dichotomy. Good for you. I think the approach is just space age technology meets Stone Age mindset. It’s Flintstone Engineering. It’s barely even serious.
I am not offended that you took my craft. I am offended that you smear paint on the wall with three hundred parallel walls and painters and pick the best one. Or whatever Rube Setup is the thing that will take over the world as of thirty minutes ago.
Make something rock solid like formal verification with LLM assist (or LLM with formal verification assist?). Something that a “human” can understand (at this point maybe only the CEO is left). Something that is understandable, deterministic.
I might be out of a job. But I will not be offended. And I will respect it.
Hell no. I, a craftsman, was going out of my way to use things like Haskell. I was very aware of the divide the entire time. The present is a relief.
You can tell your AI to read their code, and create a new requirements document for a clean-room implementation.
Then you have your AI implement using your own requirements document.
Engineers be loving the craft.
It's a dance, but AI is unfortunately looking at us like we're dancing, and meanwhile it's built a factory.
Personally, I have noticed that I still produce substantially more and better code than the people at my company spending all day writing prompts, so I'm not too worried yet, but it seems plausible at some point that a machine that stole every piece of software ever written will be able to reliably turn a few hundred watt-hours of of electricity into a hallucination-free PR.
Please, give it a rest. Nothing was stolen. Words have meanings.
It’s not the same as writing code, but it’s fun.
If your coworkers can’t outpace your code output they’re either not using opus4.6 or they aren’t really trying.
It’s pretty easy to slam 20 PRs a day with some of them being complex changes. The hardest part is testing the diffs, but people are figuring that out too.
Can you please come train the product people at my job? Maybe some of your love of the game will rub off on them.
It doesn’t resonate with me because I am a result chaser. I like woodworking because I like building something that never existed before. I don’t mind using a CNC router or a 3 printer to help me out. I don’t care about the process, I care about the result. But I care deeply about the quality of the result.
I don’t care about the beauty of the code, but I do care that nearly every app I load takes longer than it did 15 years ago. I do care that my HomePod tells my wife it’s having trouble connecting to iPhone every 5th time she adds something to the grocery list. I care that my brokerage website is so broken that I actually had to call tech support who told me that they know it’s broken and you have to add a parameter to go back to the old version to get it to work.
I care that when I use the Claude desktop app it sometimes gives me a pop up with buttons that I can’t click on.
I’ve used Claude and Cursor enough to have what I think are valid opinions on AI assisted coding. Coding is not the bottleneck to produce a qualify product. Understanding the problem is the biggest bottleneck. Knowing what to build and what not to build. The next big one is convincing everyone around you of that (sometime this takes even more time). After that, it’s obsessively spending time iterating on something until it’s flawless. Sometimes that’s tweaking an easing value until the animation feels just right. Sometimes that’s obsessing over performance, and sometimes it’s freezing progress until you can make the existing app bulletproof.
AI doesn’t help me with these. At least not much. Mostly because the time I spend coding is time I spend understanding, diagnosing, and perfecting. Not the code. The product.
It does help crank out one off tools. It does help me work in unfamiliar code bases, or code bases where for whatever reason I care more about velocity than quality. It helps me with search. It helps me rubber duck.
All of those things does boost my productivity I think, but maybe somewhere in the order of 10% all in.
It can actually help a lot here too.
In fact I rarely have AI author or edit code, but I have it all time researching, finding edge cases I didn't think about, digging into dependencies code, finding ideas or alternative approaches. My usage is 90% of the time assisting with information gathering, criticizing (I have multiple reviewer skills with different personas, and I have multiple LLMs run them), refining, reviewing.
Even when it comes to product stuff, many of my clients have complicated business logic. Talking multi-tenant-company warehouse software where each process is drastically different and complexity balloons fast even for a single one of them. It helps to connect the dots between different sources of information (old Jira task, discord dumps, confluence, codebase, etc).
And it can iteratively test and find edge cases in applications too, same as you would do manually by taking control of the browser and testing the most uncommon paths.
I would do much less without this assistance.
I really don't get why people focus so much on the least empowering part (code), where it actually tends to balloon complexity quick or overwhelm you with so much content and edits that you can't have the energy to follow while maintaining quality.
I’m also nervous about the inevitable cognitive decline of relying on AI to explain everything to me.
I don't see it that way.
I'm solving the math problem, but after coming with a solution I start asking for alternative approaches or formulas I don't even know about.
In fact, calculus is full of suck gotchas tricks or formulas, think of integrals or limits. Took who found those decades/centuries to find them.
It's not a black/white divide.
All those problems are caused by business decisions, not the developers. You do make a good point though that AI may enable more people to build their own when they can.
But yes many of those problems were caused by business decisions. But engineers are perfectly cable of creating those problems on their own. If an engineer doesn’t realize that the function they called buffers messages in memory because someone made a wrapper function around sendAsync() and called it send(), that’s a code quality issue not a business issue (except as in the broader sense where every problem is ultimately a business issue).
Or if an engineer writes a naive implementation of some algorithm and adds a spinner so that an operation takes 5s to finish when it could be instantaneous if they’d thought about the problem more.
Brilliant engineers, among the best software craftsmen out there are using AI daily and speeding up their processes.
The author of Redis, antirez, stated a month ago he spent 2 weeks on Redis tinkering with LLMs...and it was just design phase, not a single line of code was authored. The ability to interrogate LLMs and have them criticize his ideas and edge cases sped up his process by month.
He also used LLMs successfully to find multiple issues in Redis that would've took him longer to do without.
I myself spend with AI way more time tinkering and gathering information than authoring code.
Am I a craft lover or a result chaser?
But sure, let's keep everything in the divide conservative vs liberal, black and white, craftsman vs vibe coder...give me a break..
The blog post is all about being clear-eyed about the source of grief, but doesn't seem to articulate that it's the livelihood that's gone, not the craft. There's never been a better time to practice the craft itself.
I went for a job in AI in the late 1980s and realised from the bonkers spin of the company founders that it really wasn't the 5 to 10 years away as I was being told. I went looking something that was going to deliver a result.
I came back to it maybe 6 years ago when while on the bench at a consultancy. I got into trying to do various Kaggle challenges. Then the boss got the bug and wanted to predict the answers to weird spurious money-making questions. I tried but even when there was good data, I didn't know how to do better anyone else. When there wasn't good data it just produced complete shit.
Since then the world has changed. Everything I touch has AI built in. And it's really good. When you don't know your way around something or you've got stuck it really gets you moving again. Yeah, if it regurgitates a stupid negative example from the documentation as if it is "the way to do it", you just ignore it because you have already read that.
Now, every week I'm subjected to lectures by people who don't know how to code about how productive AI is going to make me. Working in the financial sector every Californian pipe dream seems to be an imperative, but all must verified by an adult. My IDE tries to insert all sorts of crap into my production code as I type, and then I'm supposed to be allow it to generate my unit tests.
I know it will get better, but will it be another 5 to 10 years?
Are we 80% of the way there yet?
Throughout college I would see a pretty stark divide, where most people would use vscode on mac or on Windows + WSL. But there was a small minority who would spend alot of time 'tinkering' (e.g, experiment with OS like nix/gentoo, or tweaking their dev environment). Maybe i'm misunderstanding what a 'craft lover' means here but it seemed to me, at the time, that the latter camp had more technical depth just based on conversation. Can't speak to the result in terms of test scores. Though it would be interesting to see any data on that if it exists.
simonw•1h ago
> Before AI, both camps were doing the same thing every day. Writing code by hand. Using the same editors, the same languages, the same pull request workflows. The craft-lovers and the make-it-go people sat next to each other, shipped the same products, looked indistinguishable. The motivation behind the work was invisible because the process was identical.
Helps explain why some people are delighted to have AI write code for them while others are unhappy that the part they enjoyed so much has been greatly reduced.
Similar note from Kellan (a clear member of the make-it-go group) in https://laughingmeme.org/2026/02/09/code-has-always-been-the... :
> That feeling of loss though can be hard to understand emotionally for people my age who entered tech because we were addicted to feeling of agency it gave us. The web was objectively awful as a technology, and genuinely amazing, and nobody got into it because programming in Perl was somehow aesthetically delightful.
rudedogg•1h ago
We all have different thresholds for what is acceptable, and our roles as engineers typically reflect that preference. I can grind on a single piece of code for hours, iterating over and over until I like the way it works, the parameter names, etc.
Other people do not see the value in that whatsoever, and something that works is good enough. We both are valuable in different ways.
Also, theres the pace of advancement of the models. Many people formed their opinions last year, and the landscape has changed a lot. There’s also some effort requires in honing your skill using them. The “default” output is average quality, but with some coaxing higher quality output is easily attained.
I’m happy people are skeptical though, there are a lot of things that do require deep thought, connecting ideas in new ways, etc., and LLMs aren’t good at that in my experience.
enraged_camel•22m ago
Sometimes you need something to be extremely robust and fool-proof, and iterating for hours/days/weeks and even months might make sense. Things that are related to security or money are good examples.
Other times, it's much more preferable to put something in front of users that works so that they start getting value from it quickly and provide feedback that can inform the iterative improvements.
And sometimes you don't need to iterate at all. Good enough is good enough. Ship it and forget about it.
I don't buy that AI users favor any particular approach. You can use AI to ship fast, or you can use it to test, critique, refactor and optimize your code to hell and back until it meets the required quality and standards.
allenu•22m ago
I think there are multiple dimensions that people fall on regarding the issue and it's leading to a divide based on where everyone falls on those dimensions.
Quality and standards are probably in there but I think risk-tolerance/aversion could be behind some how you look at quality and standards. If you're high on risk-taking, you might be more likely to forego verifying all LLM-generated code, whereas if you're very risk-averse, you're going to want to go over every line of code to make sure it works just right for fear of anything blowing up.
Desire for control is probably related, too. If you desire more control in how something is achieved, you probably aren't going to like a machine doing a lot of the thinking for you.
qsort•1h ago
If I reflect for a moment about why I personally got into tech, I can find at least a few different reasons:
- because I like solving problems. It's sad that the specific types of problems I used to do are gone, but it's exciting that there are new ones.
- because I like using my skills to help other people. It's sad that one specific way I could do that is now less effective, but it's exciting that I can use my knowledge in new ways.
- because I like doing something where I can personally make a difference. Again, it cuts both ways.
I'm sure most people would cite similar examples.
magicalist•55m ago
(I'll admit, though, that this also smells to me a bit too much like introvert/extrovert, or INTP/INTJ/etc so maybe I'm being reflexively rejective)
adriand•49m ago
The two emotions I personally feel are fear and excitement. Fear that the machines will soon replace me. Excitement about the things I can build now and the opportunities I’m racing towards. I can’t say it’s the most enjoyable experience. The combo is hellish on sleep. But the excitement balances things out a bit.
Maybe I’d feel a sense of sadness if I didn’t feel such urgency to try and ride this tsunami instead of being totally swept away by it.
sublinear•46m ago
The "make-it-go" people couldn't make anything go back then either. They build ridiculous unmaintainable code with or without AI. Since they are cowboys that don't know what they're doing, they play the blame game and kiss a ton of ass.
The "craft-lovers" got in the way just as much with their endless yak shaving. They now embrace AI because they were just using "craft" as an excuse for why they didn't know what they were doing. They might be slightly more productive now only because they can argue with themselves instead of the rest of the team.
The more experienced and pragmatic people have always been forced to pick up the slack. If they have a say, they will keep scope narrow for the other two groups so they don't cause much damage. Their use of AI is largely limited to google searches like it always was.
hungryhobbit•44m ago
Emacs vs. vi. Command-line editor vs. IDE. IntelliJ vs. VS Code. I could do like twenty more of these: dev teams have always split on technology choices.
But, all of those were rational separations. Emacs and vi, IntelliJ and VS Code ... they're all viable options, so they boil down to subjective preference. By definition, anything subjective will vary between different humans.
What makes AI different to me is the fear. Nobody decided not to use emacs because they were afraid it was going to take their job ... but a huge portion of the anti-AI crowd is motivated by irrational fear, related to that concern.
yoyohello13•33m ago
monknomo•30m ago
g-b-r•6m ago
LLMs are not a tool like an editor or an IDE, they make up code in an unpredictable way; I can't see how anyone who enjoyed software development could like that.
ehnto•41m ago
I love the exciting ideation phase, I love putting together the puzzle that makes the product work, and I also take pride in the craft.
suzzer99•32m ago
appreciatorBus•19m ago
To this day I remember being delighted by Perl on a regular basis. I wasn't concerned with the aesthetics of it, though I was aware it was considered inscrutable and that I could read & write it filled me with pride. So yea, programming Perl was delightful.