The Programmer Identity Crisis
115 comments
·October 21, 2025strix_varius
Etheryte
In my opinion this is another case where people look at it as a technical problem when it's actually a people problem. If someone does it once, they get a stern message about it. If it happens twice, it gets rejected and sent to their manager. Regardless of how you authored a pull request, you are signing off on it with your name. If it's garbage, then you're responsible.
Ekaros
Maybe the process should have actual two stage pull requests. First stage is you have to comment the request and show some test cases against it. And only then next person has to take a look. Not sure if such flow is even possible with current tools.
jihadjihad
> whereas good senior engineers often remove as much code as they add
aleph_minus_one
The problem rather is that you still have to stay somewhat agreeable while calling out the bullshit. If you were "socially allowed" to treat colleagues like
> All while the author—who clearly only skimmed their “own” code—is taking no responsibility, going “whoopsie, Claude wrote that. Silly AI, ha-ha.”
as they really deserve, the problem would disappear really fast.
So the problem that you outlined is rather social, and not the LLMs per se (even though they very often do produce shitty code).
CjHuber
I'd say it depends on how coding assistants are used, when on autopilot I'd agree, as they don't really take the time to reflect on the work they've done before going on with the next feature of the spec. But in a collaborative process that's of course different as you are pointing out things you want to have implemented in a different way. But I get your point, most PR's you'd flag as AI generated slop are the ones where someone just ran them on autopilot and was somewhat satisfied with the outcome, while treating the resulting code as blackbox
aeblyve
This process has been affecting most of the world's workers for the past several centuries. Programming has received a special treatment for the last few decades, and it's understandable that HN users would jump to protect their life investment, but it need not.
Hand-coding can continue, just like knitting co-exists with machine looms, but it need not ultimately maintain a grip on the software productive process.
furyofantares
Ignoring LLMs for a second, some code I write is done in sort of full-craft full-diligence mode, where I am only committing something where I am very proud of it's structure and of every line of code. I know it inside and out, I have reasons for every decision, major or minor, and I don't know of any ways to make it better. Not only is the code excellent, I've also produced a person (me) who is an expert in that code.
Most code is not like that. Most code I want to get something done, and so I achieve something quite a bit below that bar. But some things I get to write in that way, and it is very rewarding to do so. It's my favorite code to write by a mile.
Back to LLMs - I find it is both easier than ever and harder than ever to write code in that mode. Easier than ever because, if I can actually get and stay in that mode psychologically, I can get the result I want faster, and the bar is higher. Even though I am able to write MUCH better code than an LLM is, I can write even better code with LLM assistance.
But it is harder than ever to get into that mode and stay in that mode. It is so easy to just skim LLM-generated code, and it looks good and it works. But it's bad code, maybe just a little bit at first, but it gets worse and worse the more you let through. Heck, sometimes it just starts out as not-excellent code, but every time you accept it without enough diligence the next output is worse. And by the time you notice it's often too late, you've slopped yourself, while also failing to produce an expert in the code that's been written.
emerongi
Within the past 2 months, as I've started to use AI more, I've had this trajectory:
1. only using AI for small things, very impressed by it
2. giving AI bigger tasks and figuring out how to use it well for those bigger tasks
3. full-agentic mode where AI just does its thing and I review the code at the end
4. realising that I still need to think through all the code and that AI is not the shortcut I was hoping it to be (e.g. where I can give it a high-level plan and be reasonably satisfied with the final code)
5. going back to giving AI small tasks
I've found AI is very useful for research, proof-of-concepts and throwaway code of "this works, but is completely unacceptable in production". It's work I tend to do anyway before I start tackling the final solution.Big-picture coding is in my hands, but AI is good at filling in the logic for functions and helping out with other small things.
thorn
Thank you, author. This essay made my day. It resonates with my thinking of last months. I tried to use AI at work, but most of times I regrettably scratched whatever it did and did stuff on my own. So many points I agree with. Delegating thinking to AI is the worst thing I can do to my career. AI at best is mediocre text generator.
So funny to read how people attack author using non-related to the essay’s message criticism.
cardanome
The worst thing for me is that I am actually good at LLM-based coding
My coworkers that are in love with this new world are producing complete AI slop and still take ages to complete tasks. Meanwhile I can finally play my strength as I actually know software architecture, can ask the LLM to consider important corner case and so on.
Plus, I am naturally good at context management. Being neurodivergent has given me decades of practice in working with entities that have a different way of thinking that me own. I have more mechanical empathy for the LLM because I don't confuse it for a human. My coworkers meanwhile get super frustrated that the LLM can not read their mind.
That said, LLMs are getting better. My advantage will not last. And the more AI slop gets produced the more we need LLMs to cope with all the AI slop in our code bases. A vicious cycle. No one will actually know what the code does. Soon my job will mostly consist of praying to the machine gods.
greymalik
> One could only wonder why they became a programmer in the first place, given their seeming disinterest in coding.
To solve problems. Coding is the means to an end, not the end itself.
> careful configuration of our editor, tinkering with dot files, and dev environments
That may be fun for you, but it doesn’t add value. It’s accidental complexity that I am happy to delegate.
codyb
Configuring editors, dot files, and dev environments consistently adds value by giving you familiarity with your working environment, honing your skills with your tools, and creating a more productive space tailored to your needs.
Who else becomes the go to person for modifying build scripts?
The amount of people I know who have no idea how to work with Git after decades in the field using it is pretty amazing. It's not helpful for everyone else when you're the one they're delegating their merge conflict bullshit too cause they've never bothered to learn anything about the tools they're using.
mupuff1234
Have you considered that the problem is with Git and not the users?
ares623
Careful with the “doesn’t add value” talk. If you follow it far enough to its logical end, you get to “Existence doesn’t add value”
cool_man_bob
That’s the point lol.
bcrosby95
The point of most jobs in the world is to "solve problems". So why did you pick software over those?
whynotminot
Why would someone who likes solving problems choose a very lucrative career path solving problems… hmmm
You can also solve problems as a local handyman but that doesn’t pad the 401K quite as well as a career in software.
I feel like there’s a lot of tech-fetishist right now on the “if you don’t deeply love to write code then just leave!” train without somehow realizing that most of us have our jobs because we need to pay bills, not because it’s our burning passion.
OkayPhysicist
It's because there are a significant number of us for who tinkering with and building shit is basically a compulsion. And software development is vastly more available, and quicker to iterate and thus more satisfying, than any other tinkering discipline. It's probably related to whatever drives some people to make art, the only difference being that the market has decided that the tinkers are worth a hell of a lot more.
For evidence towards the compulsion argument, look at the existence of FOSS software. Or videogame modding. Or all the other freely available software in existence. None of that is made by people who made the rational decision of "software development is a lucrative field that will pay me a comfortable salary, thus I should study software development". It's all made by people for whom there is no alternative but to build.
jimbokun
You owe your cushy job and big paycheck entirely to those tech-fetishists that came before you.
Secondly, you are very blind if you don’t see that the AI making your job “easier” is close to replacing you entirely, if you don’t also have a deep understanding of the code produced. What’s to stop the Project Manager from vibe coding you out of the loop entirely?
ThrowawayR2
> "...without somehow realizing that most of us have our jobs because we need to pay bills..."
Oh, I wouldn't say that. The hacker culture of the 1970s from which the word hacker originated often poked fun at incurious corporate programmers and IIRC even Edsger Dijkstra wrote a fair bit of acerbic comments about them and their disinterest in the craft and science of computing.
inglor_cz
At 47, I am an older guy already. But in my generation, people who went on to be programmers usually started tinkering with code at ~ 11 y.o. (back then on ZX Spectrum and similar cheap beasts available in freshly post-Communist Europe) out of interest and passion, not because of "I want to build a lucrative career".
(Given how massively widespread piracy was back then, programming looked rather like a good way to do hard work for free.)
Money matters, but coders who were drawn into the field purely by money and are personally detached from the substance of the job is an unknown species for me.
"You can also solve problems as a local handyman"
That is NOT the same sort of talent. My fingers are clumsy; my mind is not.
veegee
Sounds like a mediocre developer. No respect for people like you.
MountDoom
The honest answer that applies to almost everyone here is that as a kid, they liked playing computer games and heard that the job pays well.
It's interesting, because to become a plumber, you pretty much need a plumber parent or a friend to get you interested in the trade show you the ropes. Meanwhile, software engineering is closer to the universal childhood dream of "I want to become an astronaut" or "I want to be a pop star", except more attainable. It's very commoditized by now, so if you're looking for that old-school hacker ethos, you're gonna be disappointed.
OkayPhysicist
I think you're grossly underestimating the number of people here who fell into software development because it's one of the best outlets for "the knack" in existence. Sure, this site is split between the "tech-bro entrepreneur"-types and developers, and there are plenty of developers who got into this for the cash, but in my experience about a quarter of developers (so maybe 10-15% of users on this site) got into this profession due to getting into programming because it fed an innate need to tinker, and then after they spent a ton of time on it discovered that it was the best way to pay the bills available to them.
wolvesechoes
> but it doesn’t add value
Sad to see people reduce themselves willingly to cogs inside business machine.
GaryBluto
These are my thoughts exactly. Whenever I use agents to assist me in creating a simple program for myself, I carefully guide it through everything I want created, with me usually writing pages and pages of detailed plaintext instructions and specifications when it comes to the backends of things, I then modify it and design a user interface.
I very much enjoy the end product and I also enjoy designing (not necessarily programming) a program that fits my needs, but rarely implementing, as I have issues focusing on things.
null
blashyrk
> coding is the means to an end
...
> doesn't add value
What about intrinsic value? So many programmers on HN seem to just want to be MBAs in their heart of hearts
dingnuts
A chef who sharpens his knives should stop because it doesn't add value
A contractor who prefers a specific brand of tool is wrong because the tool is a means to an end
This is what you sound like. Just because you don't understand the value of a craftsman picking and maintaining their tools doesn't mean the value isn't real.
senordevnyc
Yes, but the point of being a chef is the food, not the knives. If there's a better way to prepare food than a knife, but you refuse to change, are you really a chef? Or are you a chef knife enthusiast?
jimbokun
Ok then throw a frozen meal from the supermarket into the microwave and be done with it.
Outcome is really the same, right? Why waste all that effort on a deep understanding of how to prepare food?
codyb
The point is, a lot of us aren't convinced reviewing 8 meals made by agents in parallel _is_ producing better food.
And it also seems exceedingly wasteful to boot.
jay_kyburz
A closer analogy would be a chef who chooses to have a robot cut his tomatoes. If the robot did it perfect every time I'm sure he would use the robot. If the robot mushed the tomatoes some of the time, would he spend time carefully inspecting the tomatoes? or would he just cut them himself?
NewsaHackO
>The point of being a chef is the food, not the knives
They will never be able to undestand this, unfortunately
null
dennisy
I absolutely loved this piece.
I also agree with comments on this thread stating that problem solving should be the focus and not the code.
However my view is that our ability to solve problems which require a specific type of deep thought will diminish over time as we allow for AI to do more of this type of thinking.
Purely asking for a feature is not “problem solving”.
mathieudombrock
I found this article really interesting. This is pretty much exactly how I feel about LLM programming.
I really enjoy programming and like the author said, it's my hobby.
On some level I kind of resent the fact that I don't really get to do my hobby for work any more. It's something fundamentally different now.
JKCalhoun
Full disclosure: I am old.
When I started programming for Corporate™ back 1995, it was a wildly different career than what it has become. Say what you want about the lunatics running the asylum, but we liked it that way. Engineering knew their audience, knew the tech stack, knew what was going on in "the industry", ultimately called the shots.
Your code was your private sandbox. Want to rewrite it every other release? Go for it. Like to put your curly braces on a new line? Like TABs (good for you)? Go for it. It's your code, you own it. (You break it, you fix it.)
No unit tests (we called that parameter checking). No code reviews (well, nothing formal — often, time was spent in co-workers offices talking over approaches, white-boarding API… Often if a bug was discovered or known, you just fixed it. There may have been a formal process beginning, but to the lunatics, that was optional.
You can imagine how management felt — having to essentially just trust the devs to deliver.
In the end management won, of course.
When I am asked if I am sorry that I left Apple, I have to tell people, no. I miss working at Apple in the 90's, but that Apple was never coming back. And I hate to say it, but I suspect the industry itself will never return to those "cowboy coding" days. It was fun while it lasted.
dugmartin
I started around the same time. No unit tests but we did have code reviews because of ISO 9001 requirements. That meant printing out the diffs on the laser printer and corralling 3 people into a meeting room to pour over them and then have them literally sign off on the change. This was for an RTOS that ran big industrial controls in things like steel plants and offshore oil rigs.
Project management was a 40 foot Gantt chart printed out on laser printer paper and taped to the wall. The sweet sound of waterfall.
veegee
100% agreed. It’s just full of business assholes and vibe coder script kiddies now. Everything has turned to shit.
jay_kyburz
Try game dev. It's still like that today.
RamtinJ95
I think "Identity Crisis" is a bit over dramatic, but I for the most part agree with the sentiment. I have written something in the same vane, but still different enough that I would love to comment it but its just way more efficient to point to my post. I hope that is OK: https://handmadeoasis.com/ai-and-software-engineering-the-co...
jimbokun
I can think of few truer identity crises than having a craft you have spent years honing and perfecting automated away.
mncharity
I liked your emphasis on individual diversity, and an attendant need to explore, select, adapt, and integrate tooling. With associated self-awareness. Pushing that further, your "categories" seem more like exemplars/prototypes/archetypes/user-stories, helpful discussion points in a high-dimensional space of blended blobs. And as you illustrate, it branches not just on the individual, but also on what they are up to. And not just on work vs hobby, but on context and task.
It'd be neat to have a big user story catalog/map, which tracks what various services are able to help with.
I was a kid in NE43 instead of TFA's Building 26 across the street - with Lisp Machines and 1980s MIT AI's "Programmer's Apprentice" dreams. I years ago gave up on ever having a "this... doesn't suck" dev env, on being able to "dance code". We've had such a badly crippling research and industrial policy, and profession... "not in my lifetime" I thought. Knock on wood, I'm so happy for this chance at being wrong. And also, for "let's just imagine for a moment, ignoring the utterly absurd resources it would take to create, science education content that wasn't a wretched disaster... what might that look like?" - here too it's LLMs, or no chance at all.
BubbleRings
Hi op. “Conform or be cast out” ha. Read your article then right after got an email announcing Rush tickets going on sale. Must be a sign I should go.
I forwarded your article to my son the dev, since your post captured the magic of being a programmer so well.
And yes Levy’s book Hackers is most excellent.
apprentice7
Subdivisions is my favourite song of all time and I thought about Rush as well while reading that line.
knuckleheads
> Creative puzzle-solving is left to the machines, and we become mere operators disassociated from our craft.
For me, at least, this has not been the case. If I leave the creative puzzle-solving to the machine, it's gonna get creative alright, and create me a mess to clean up. Whether this will be true in the future, hard to say. But, for now, I am happy to let the machines write all the React code I don't feel like writing while I think about other things.
Additionally, as an aside, I already don't think coding is always a craft. I think we want it to be one because it gives us the aura of craftspeople. We want to imagine ourselves as bent over a hunk of marble, carving a masterpiece in our own way, in our time. And for some of us, that is true. For most programmers in human history though, they were already slinging slop before anybody had coined the term. Where is the inherent dignity and human spirit on display in the internal admin tool at a second tier insurance company? Certainly, there is business value there, but it doesn't require a Michalengo to make something that takes in a pdf and spits out a slightly changed pdf.
Most code is already industrial code, which is precisely the opposite of code as craft. We are dissociated from the code we write, the company owns it, not us, which is by definition the opposite of a craftsmen and craft mode of production. I think AI is putting a finer, sharper point on this, but it was already there and has been since the beginning of the field.
To me, the most salient point was this:
> Code reviewing coworkers are rapidly losing their minds as they come to the crushing realization that they are now the first layer of quality control instead of one of the last. Asked to review; forced to pick apart. Calling out freshly added functions that are never called, hallucinated library additions, and obvious runtime or compilation errors. All while the author—who clearly only skimmed their “own” code—is taking no responsibility, going “whoopsie, Claude wrote that. Silly AI, ha-ha.”
LLMs have made Brandolini's law ("The amount of energy needed to refute bullshit is an order of magnitude larger than to produce it") perhaps understated. When an inexperienced or just inexpert developer can generate thousands of lines of code in minutes, the responsibility for keeping a system correct & sane gets offloaded to the reviewers who still know how to reason with human intelligence.
As a litmus test, look at a PR's added/removed LoC delta. LLM-written ones are almost entirely additive, whereas good senior engineers often remove as much code as they add.