I feel like this is a very profound insight.
Of course processes like this can become about the immediate utility. Reviewing is then checking work so, it can be merged and used.
But the process is more about us than the code. And we lose the deeper part when we only care about the superficial one.
AI is all about losing every possible bit of friction, severely underestimating the value that friction brings.
And it's not just AI, the removal of friction seems to be pursued mindlessly in all areas, with not even an attempt to understand what value it might be providing.
That was pretty widespread during 2005-2015, but it's been dropping extremely quickly now.
Developers are generally seen as replaceable cogs. Middle management loves to talk about "scaling" - by which they don't mean scaling how devs understand it, but instead multiplying headcount - because surely throwing x-n devs at the same software will multiply the velocity by the same factor amiright?
The biggest value you can get is by having a very small team of extremely capable people (with extremely high bus factor) being fully in control of everything they do.
Realistically speaking, that'd be impossible to "scale" in the perspective of an MBA however, hence the industry at wide doesn't to that.
You may notice that some employers do, however.
You're just unlikely to get a job there, because their team is already established.
Brooks, Frederick P., Jr., 1931-2022. The Mythical Man-Month : Essays on Software Engineering. Reading, Mass. :Addison-Wesley Pub. Co., 1982.
Those who ignore history are doomed to repeat it?
Honest to god, were the programming job market like 5% better than it is (so, y'know, years away) i would already have quit. I've been applying places but it's a slaughterhouse out there. I got ghosted after a fourth round interview at a non-tech company over the winter.
Shit sucks.
I'm immensely jealous of the author; i have savings as a safety net, but not enough to take a year off work. But this next year of my role is guaranteed to be hell and the last year of applying for jobs has not been better.
There were fakers before, and there will be fakers after.
True, in the same sense that sharpening your tools if you're a trader doesn't matter to your customers: what matters is that the job you deliver is good.
Making sure you put all electrical wiring in conduits rather than buried in plaster is not what most customers care about, but it will mean easier repairs and quicker improvements in the future.
Writing good (not necessarily "pretty") code and arguing about implementation details means you will have an easier time delivering your work, both now and in the future. You have a better chance of delivering code that can be maintained and understood by yourself and others, including the people who come after you.
Furthermore, when done right, these discussions keep a trace for understanding bugs and for code archeology when in the future you're trying to understand how decisions were made and the tradeoffs considered, which could massively help refactors, rewrites and decisions to drop certain parts of the code base.
Of course, you can sharpen a tool too much or at the wrong angle, or you can make a mistake and fill up your conduits with plaster, but you stand a much better chance of ending with a better, cleaner, more maintainable and understandable product if you do practice those steps than if you skip them altogether.
I agree there is some value in AI tools, but implementation details do matter. People shouldn't be pushing unread code to prod. That's how you end up with security holes and other bugs. That's how you end up dropping millions of orders on Amazon.com.
My experience says the opposite: the value you provide to the business is irrelevant compared to the value you provide people in positions of power in said business. These are mutually exclusive things.
I've saved employers entire multipliers of value relative to my TC; that value was irrelevant compared to folks who gamed AI tool usage to look better on dashboards to those in power seeking to have loyalists under foot. I've reduced product build times exponentially and halved build costs, but that value was irrelevant to those whose power was dependent on higher costs and longer times. I have contributed substantially more value to businesses than I cost, yet I am first out the door because I deliver value, not blind fealty.
Business value is irrelevant compared to personal power.
Some few (good ones) will find niches and "hand craft" software, similar to today when you still can buy hand forged axes etc. Obviously the market for these products will be much smaller but it will exist.
I you love programming you should try to get into the second category. Be a master craftsman.
Imagine that you're given a business problem to solve. You represent the process of writing the code with a graph - each vertex is a git commit. We consider the space of all possible git commits, so the graph is infinite. All vertices are connected with directional edges, and each edge has a value "cost". If you are in commit A and you want to go to commit B, you have to pay the cost from A to B. Your goal is to find a relatively short path from empty git commit to any vertex which contains code that has some specific observable business properties.
You might notice that not everyone is equally smart, so when giving this task to real people, we'll associate "speed" with each person. The higher the speed, the lower the paid costs when traversing the graph. I'll leave the specifics vaguely undefined.
Since a part of the task is to discover information about the graph, we also need to specify that every person has some kind of heuristic function that evaluates how likely given node is to get you closer towards some vertex that can be considered a goal. Obviously, smarter people have heuristic functions that are more closer to ground truth, while stupid people are more biased towards random noise. This also models the fact that it takes knowledge to recognize what a correct solution is.
This model predicts what we intuitively think - smart specialists will quickly discover connections that take them towards the goal and pay low costs associated with them, while idiots will take the scenic route, but by and large will also eventually get to some vertex that satisfies the business requirements, even if it's a vertex that contains mostly low-quality code, because for idiots the cheap edges that seem good at first glance are the only edges they can realistically traverse.
Obviously, if you have a group of people working on the same task, you'll reach the business goal faster. Therefore, a group of people is equivalent to one person with higher speed, and some better heuristic.
This conclusion suddenly creates a well-known, but interesting situation - each smart specialist can be replaced by a group of idiots. Or, the way I heard it, "the theorem of interns - every senior can be replaced by a finite number of interns".
What AI does is it increases people's speed. Not the heuristic function, but the speed. Importantly, the better the heuristic function, the smaller the speed gains. Makes sense - an idiot who doesn't know shit and copy-pastes things from ChatGPT will have massive speed gains, while a specialist will only modestly benefit from AI.
From business perspective though, by having more idiots write more slop with more AI we traverse the graph significantly faster. Sure, we still take the scenic route, and maybe even with AI we take the really fucking long scenic route, but because the speed is so high, it doesn't matter.
And because AI supercharges idiots more than smart specialists, we have a situation where the skill of working with idiots is more valuable on the job market than the skill of doing your job right. Your goal isn't to find the shortest path, or the prettiest code, your goal is to prompt AI as quickly as possible to get you to any vertex that satisfies the business requirements.
The question is if blind speed scales quicker then distances grow.
That is not obvious at all.
20 years coding experience. Gone through the sweaty junior years, senior, founding engineer, CTO (and back to software Engineering again because it's my preference) -- and now I can't even get an interview with a human.
Due to unfortunate life events my savings are now all but gone and I don't even know how if I will be able to keep a roof over our heads. It's messed up.
If anyone is hiring send me a message. I'm a .eu citizen but work have residency in and work out of Mexico.
There's also the matter of going back to school, and the associated debt I'd have to take. I'd never be able to pay the loans off if I did that.
I think in general, if it were cheaper to live, we would see a shift in priorities, what people focus on, etc. More art, less grift.
Genuinely good people get caught up in rat races trying to reach their ceiling while they can. If they didn't feel that pressure, maybe they'd be doing something else.
If we do consider the ethics, there's a lot of contradictions built into why someone would want to live there so badly to do the kind of work the blog post is concerned with.
Their efforts are better rewarded moving their passion into an open source project while keeping a job in tech that they don't care so much about and are qualified for. This is a normal part of growing up. Some people switch careers while others stay in it while decoupling their passions from their paycheck.
I work at a very 'AI-pilled' company, but:
- Everyone reads and reviews every PR and leaves human comments
- Documentation is written well and tended to by humans
- There's no 'AI mandate'
- Whether features are possible are first explored by an agent but manually traced by a human through the codebase
You can treat AI like a very powerful tool to augment you and run your agent swarms at the same time.
- mandatory ai usage
- ai usage tied to kpis or performance reviews
- trainings on how to use claude code
- restrictions on what tools you can use
- layoffs
- engineers still typing every line of code by hand
The act of software development formalizes paradigms, surfaces unknowns and forces their resolution. Traditionally the work product gets better over time as you iterate. My own coarse rule of thumb is on average it takes until version 3 or so - i.e. 3 rewrites - until you to land at the kind of high caliber product that stems from really understanding the problem space and having worked in it extensively enough to have a good mental model and have uncovered the edge cases and hammered out an optimal solution.
While AI is famous for fast iteration, I expect in cases where the designers wielding the tool lack a deep understanding of what's going on, potentially exacerbated by never actually having to work with the codebase, it may actually turn out to impede their ability to reach that plateau. Not saying this will be true for all use cases, just that the tool makes it seductively easy to fall into that trap.
I'd love to reinvent computing from the ground up, stripping away the many patchwork layers of complexity we've accreted over time and applying an obsession for making each individual component uncommonly robust and engineered for clarity. I feel that kind of project would be a great candidate for human-written code. I think AI tools would make a great sounding board / linter / reviewer in such a scenario, but since they were trained on existing examples and legacy patterns I'm not convinced they'd be as good as a human at the actual constructing, in terms of what I'm optimizing for.
I personally tend to favor longer lead times and slower public ship pace (but not slower betas or delay in customer feedback) in order to maintain a higher bar of quality. Even if saying so out loud risks branding me heretical by some corners of Silicon Valley!
People caught up in this line of beliefs generally tend to be more neurotic and unhappy about most things.
If we're putting the blame on anything, it's on us hacker types for going where the money flows and not fighting the corporate overlords nail and tooth.
Experimenting with speculative uses is fine, technological breakthroughs require lot of iterations and some would naturally never make it but with the enormous amounts of capex that companies are investing, these have to impact the top line and eventually the bottom line as well. I just don’t see that happening now, I could be wrong.
1. To me speculative uses of AI like meeting notes summarisers seem to add little value if at all. First off, most meetings are performative work especially at big companies. Add to this, when someone just casually pastes the meeting notes from an AI summary and asks the meeting organiser to “pls check for correctness”, my blood just boils. Are we spending billions of dollars of capex for this ?
2. Every team builds their own “agent” for diagnosing incidents which is announced to huge fanfare but people rarely end up using it irl.
3. Devs and PMs chasing “volume” of work. You prompt GPT for an issue and it is bound to give you pages of text that you can use to show how much of output you can churn. I have seen excessively verbose design docs that only the writer (and prompter) could understand and all this was accepted because “Hey, I used AI for this and it must be good”.
There are legit uses of AI and I do have a 20$ Claude subscription which I like and use but at big companies they are shoving AI into every nook and cranny hoping it shows up in the top line and bottom line and so far it doesn’t add up.
Lot of these uses are driven by fear, by repeated exhortations from upper management about shoving AI into every nook and cranny when they are just as much clueless as us. People’s mortgages, their children’s education and their retirement, in short their whole livelihoods are at stake even more so when companies will happily lay off workers without a second thought. So people have to use AI even when it adds questionable value, if at all.
I am not resistant to change and am not an AI Luddite. I am happy to use AI to become a better developer but most current use cases seem to add questionable value.
I had a "good" job, it was extremely stable and in the public sector, the work hypothetically mattered... I was miserable because it didn't matter. If I would have died in my study, the system would have happily churned on accomplishing nothing without me. There were so many many obstacles to accomplishing anything too, like I'm all about "perfect shouldn't be the enemy of good" - but hypothetically we should do something. I went on vacation in November and when I got back the latest ServiceNow update nuked a bunch of the changes I had worked for months trying to get done.
I quit at the start of the year and honestly, it's been great? Not fast, not suddenly lucrative, but I've been taking it slow. I'm literally building little vibe-engineered tools for local companies. I can now do what would have taken me a team to do by myself, it is paying (albeit slowly), it's fun, and I have time to do the things I care about in this life.
Don't work for the man. Your job cannot love you back, in fact, it actively hates you.
Sounds interesting. Care to elaborate?
The first thing was just some really simple stuff a bush airline I used to work for needed too, like, their software is through a DB run by this other company, they wanted a status board customers could view. That shouldn't be a huge lift, but the company that runs the enterprise software doesn't have the time to build it.
I sent a series of emails, got permission to hit the API, and was able to connect things so now this little bush airline has a customer facing schedule app and people don't call the office 30 times an hour to see if the flight is late or on time or early. Even in the middle of nowhere, if they have Wifi the can check the flight schedule on their phone. That has spread to "hey, do you think you could use this data to auto-populate flight and duty logs?" Yup, not a huge deal. Then onto the next one. Every month it seems I take on a new project for them and the scope of their tooling keeps growing and the recurring costs I charge to maintain things is low enough where I'm worth it. There's a dashboard of data science stuff, then a compliance auditing tool, and the list of bespoke features that are critical to them continues to grow, and they continue to pay me. It's pretty cool.
This has lead to another customer pinging me that wants me to work on an app for their factory floor to help their technicians. Nothing crazy, just a kind of wrapper over USB tool they have and a CRUD app. 99% of the real work is going to be testing out like 30 different layouts and making sure that it works properly in practice, but a big company would never bother to do this. I will go down to their factory this week, set up computer, and talk with their technicians while I vibe code it out with Codex and draw process diagrams and think. 90% of it is really just thinking about what's a prudent choice.
The SaaS the first company is paying for is incredibly necessary to run their business, those guys will probably have their hooks into that operation for many more years because of the inertia to change, but there is tons of room to fix some of the little small annoyances that not having bespoke custom software creates. Also, the software they are kind of locked into is 10s of thousands of dollars a month. I reckon in the long run I'll end up trying to build a replacement for it entirely then charging way less to give them exactly what they need.
Then there's the existential angst of vibe coding this stuff. The truth is, I could write all this code myself. It's mostly Python, and JS, but it would take me a month to do what I can do in a week and I'd be working myself to the bone. Instead, this is more like an extremely fun part-time job that's growing in scope and pay but not growing in time required of me. Seriously, these tools are cool! They're like I have a team of idiot savants/interns working for me but the entire company so far is literally just me and my wife (and she isn't really involved in the technical stuff at all). Codex is dumb and does not understand the use case at all, but good lord does it churn out boilerplate code that solves real engineering problems for customers. My job is largely playing "software plumber foreman" and making sure all the lego pieces fit together nicely and that they're good architectural choices.
For example, I was skimming the code base last week and noticed a ton of just unused code from an early iteration. I spent a bunch of time pruning that as a human, then also having codex refactor code smells I didn't like. "This file is ridiculous, it's like a monolith of 30 different concepts hammered into one place - refactor all this stuff and spread it out, move function X to a separate file, use a functional style" etc. Stuff like that is kind of mandatory, otherwise your codebase will give you a stroke and you can grow it to an extraordinary size that will hurt your ability to iterate because you'll be running into context length issues. But the robot doesn't do too horrible of a job.
I could write all of the code, but the customers don't care if it's written by a human or not? They just want it to work. So I spend a lot of the time coming up with test-cases, then interactively evaluating what the robot is building? Kind of like a really slow REPL? But I'm definitely less of an engineer and more of an architect now. That pains me a bit? But all things must come to an end.
One thing I'd say is important if you're going to do this... use the dumbest possible solution you can. You'll need to specify that to these tools otherwise they'll build you a cathedral? You probably do not need some monster system with 80 layers of abstraction. KISS is important.
This is what tech has always been. A never (yet) ending race to automate. Our job will be done when there's nothing left to automate.
Outsourcing your thinking, especially uncritically, is. There is a very obvious cognitive bias in the most vehement AI advocates where the one time a tool worked really well for them makes it worth the dozen of times it blows up in your face and makes that someone else's problem. The gain is romanticized and the losses set aside, without checking the balance or how badly the losses wear on morale.
LLMs can really help you get what your bosses want a lot faster.
As an older dev, myself, I'd already been bitching about the state of software quality before all of this. Companies just didn't give a shit. Sure, people within them did, but as a whole companies will do the bare minimum to not lose your business (because that's what's best for the bottom line). Can't really fault them for their nature.[1]
And then I step back and look at something like Linux or GNU. Perfect and bug-free? Certainly not. But they're damn fine pieces of software. Many open-source projects have historically been damn fine pieces of software. Because they don't care if they lose your "business". They just want to build something cool that they can be proud of.[2]
It's why so many of us agonize over the details of the things we produce and give away for free. It might not even net us another user, but we have pride in our craft and want to do the best we possibly can.
But that way of thinking is a money loser, at least in the short-term. And companies live in the short-term.
So what's going to stop software from just collapsing into a massive pile of crap?
I don't know. Maybe it just has to get so bad that people start going to the marginally-better competition. Isn't exactly a great consolation to me, that.
[1] Small companies are often idealistic and try to do the Right Thing, admittedly. But big ones who tend to be market leaders tend to not.
[2] Insert the entire GNU philosophy here because I just glossed over it completely and I don't want to get called out on it. :)
“ Would initiating these discussions result in interpersonal stress? Should I just let things slide? Would I become known as a “difficult” coworker for pushing back on AI use? Does any of it really matter? Does anyone really care? “
> Would initiating these discussions result in interpersonal stress?
Yes, it absolutely does. Nobody likes being told they're wrong, and having anything short of glowing support of a New Thing (TM) in American enterprise paints a huge target on your person. You lose opportunities, you lose relationships, you lose growth, and eventually you lose your job.
That being said...
> Should I just let things slide?
NO. Someone has to say something. Someone has to do something to stop bad decisions, bad actions, and bad outcomes. Someone has to point out the harms, flaws, and consequences, even if it comes at the expense of their career.
Otherwise nothing will ever actually change, because everyone else will think it's okay due to a lack of contrasting opinions or supporting evidence.
> Would I become known as a “difficult” coworker for pushing back on AI use?
See the first point above. You will absolutely be scapegoated for anything short of blind fealty to New Things (TM).
> Does any of it really matter? Does anyone really care?
A lot of folks care, but the current economic system incentivizes harming others through fiscal reward. We have to keep giving a fuck, because if we don't, then harm wins.
Don't get me wrong, life is fucking hard and bleak when standing up for cooperation and support is rewarded with job losses, homelessness, and government persecution. That doesn't make it the wrong thing, only the hard thing.
I want to zoom in on the rise of AI notetakers. AI that generates transcripts alongside recorded video that you can watch later? Amazing. I can catch up later and find people asyhc if I need more info; the videos are discoverable/shareable and anyone who needs to be in the know can be. AI notetakers that give you a summary and nothing else? Useless. These generat concepts of overviews and tend to miss small, but, key details.
I'd rather (and often do) take notes manually than turn on the notetaker.
* Cut the video down into chapters, e.g.
- 0:00 - Introductions
- 3:30 - Joe gives a summary of the problem and shows diagrams
- 7:52 - Kim asks clarification questions and introduces relevant infrastructural concepts
- 10:25 - People waffling about unrelated stuff
...
* Put the video and the transcript on the same GUI, where I can shuffle through the timeline, choose chapters or click the transcript to be taken to the relevant part of the video.* Bonus points if it highlights the relevant part of the summary as the video is playing.
But there‘s something psychologically powerful happening with the interaction of AI. I think we overestimate our ability to be rational and underestimate how essily influenced we are.
> You join a meeting with a coworker. Your coworker has enabled an AI tool to automatically take notes and summarize the meeting. They do not ask for consent to turn it on. The tool mischaracterizes what you discuss.
Asking for consent to what is more or less meeting transcription (already enabled, presumably) seems a little odd. If you don't like it, why not just talk to the coworker and ask them not to use it? Offer to take notes yourself, perhaps.
> A team lead adds an AI chatbot to a Slack channel. Anyone can tag the bot to answer questions about the company’s products. Coworkers tag the chatbot many times a day. You never see someone check that the bot’s responses are correct.
Why would that happen in the Slack channel? Presumably you'd be googling it or reading documentation to do this, not posting in the channel.
> An engineer adds 12,000 lines of code affecting your app’s authentication. They ask that it be reviewed and merged same-day. Another engineer enlists a “swarm” of AI agents to review the code. The code merges with no one having read the full set of changes.
This is an insanely reckless thing to do with or without AI. If this actually happened at your company...I think there were deeper issues than overuse of AI.
> One of your pull requests has been open for a few days. You ask other engineers to leave a code review. Minutes later, an engineer pastes a review that was generated by an AI tool. There are no additional thoughts of their own.
Again, I think you should communicate with your coworkers on this. Possibly even bring it up in 1 on 1s with your manager. Not "I want to discourage use of AI" but "copying and pasting AI responses shows a lack of respect for others' time" and "lack of due diligence," show a horror story of an AI deleting someone's PROD database, etc. it's a useful but imperfect tool, not a replacement for thought.
What does Trump have to do with AI?
Long breaks help. Take your mind off of things that bothered you. Do things you enjoy. Which may include tech work, but on your own terms.
I wouldn't be surprised if you decide to not go back. The status quo of most organizations is grim. But there are still people who care about the same things as you. You can seek them out and work together, much like you did 15 years ago. This is more difficult now among the noise, but you can tune that out. The industry will never recover altogether, but this current period is a blip of high insanity, which will subside in a few years.
Good luck!
I’ve started kind of a funny rule, which is that when I make a change now, I can use Claude or not. But if I use Claude, some cards have to go into the deck. Both about how the implementation works, and also about anything within the implementation I didn’t know about. It does force you to double-check things before committing them to memory.
That’s ok! I was fascinated by coding when many others weren’t and found a great career as a result. A different cohort will love Development 2.0.
In the long run, strong senior specialists — in design, development, and other IT fields — will likely be more valuable than ever. Meanwhile, those who rely entirely on AI without developing fundamentals may never reach that level.
AI isn’t really capable of creating truly complex solutions or top-tier UI/UX — it mostly recombines existing ideas.
So it’s probably better to focus on your craft and avoid burnout — that’s what will matter.
Humanity developed Code and programming languages for people. They are supposed to provide sufficient expressiveness so that we people can understand what is happening, and 0 ambiguity, so that the machine can perform is instructions.
But computer code has been a way to communicate among us people on our intentions (what we intend the machine to do). Otherwise, we would still be writing in assembler.
But now, computers are generating code, A LOT of code. So much, that it's becoming more and more difficult to stay on top with our verbose languages.
We will need to develop a better way for the computers to a) produce the instructions to perform the tasks we tell them to , b) produce reports or some accessible way for us people to understand and share what the instructions are doing.
A valid question.
After 42 years as an electrical engineer and embedded software developer, I chose to retire rather than transition to an LLM based workflow...
Otherwise, if they decide to go into another field that they will be starting from scratch in will pay only a small fraction and whatever lifestyle they were used to will have to change.
Being cutoff from China " A market that is also advancing in the same sectors as the US.Not allowing competition to enter the west will cause a recipe for disaster in the future. The current government is not "focused" on growth, despite the contrary to what's being said publicly. Where this will take the US is a place were stagnation is okay, so to make up for it there is a surge in investments in AI craze at the moment. The feedback is required in order to grow that goes for companies too not just the junior-varsity wrestler at you local high school. I mean taking abundance of data to utilize a summarize tool so that it can auto complete a prompt was bound to happen sooner or later, take elastic search for example, it's a search bar that as you type shows what that database has to offer with either a weighted response or indexed response depending on setting. This tool also shows images and information in regards to the search query. All that was needed to happen in that scenarios was something to compute this mess of data in abundance and project a response from it not just a search result. Marvelous you might say, but it has been around for a while now.The idea was there, it just needed the actor to execute it. The firings alone tell you the health and implications of these actions taking place. There was promises behind these investments that this war is interrupting or severing the deals even post-conflict.
The DotCom bubble was push on society to use the web and to digitize some parts of our lives, which the few companies that survived DotCom era are whats driving the push to the next era of tech or digital. It seems the AI idea is born without a guardian nor ownership, but to leave the courage to act upon it is open to any takers. The overwhelming spillover of data had to go somewhere. The useless data " how fast does a 2001 Porsche 911 go?" was tiresome to search for anymore.
The education system is already fallen apart in the US and this only makes things worse. Where is education heading with all of the adoption of AI all around us, how will you argue with your children, how will you learn new things? I don;t think I'm the only one thinking this at the moment by all means. The solution? well I'm, not sure if there is a solution to this? Companies want to see results from their spending and they will not stop until that is evident.
optimism is clearer without fog.