This is becoming more and more true every day.
edit: Bonus points if you do it without the word 'growth', my pockets/rental are, effectively, the same size. Can't have one without the other, I'm afraid.
I notice the same pattern when using LLMs to write longer text like reports or scientific papers, individually each section they write makes sense but overall the whole document feels off in a hard to describe way. I think it's where you can see the difference between human intelligence and whatever it is LLMs have, it's not the same thing. We are much slower and less able on the small scale but seems we can do some higher level reasoning that is still impossible for LLMs. That always becomes clear when you point an LLM at an obvious flaw it produced and it goes "You are absolutely right!" as if it's obvious in hindsight but when running multiple "Please look for issues" iterations it would never have spotted the issue by itself.
That said I think it will be absolutely fine writing a simple CRUD app for you e.g. using some popular JS framework, Tailwind for styling and a regular ORM, there's more than enough training data available for these things. But then again such software could be purchased before already e.g. as a SaaS template, I don't think LLMs are so revolutionary here, they just replace the template (but to be honest a good hand-written SaaS boilerplate is probably still better than a vibe coded one).
I've been crafting beautiful code for almost 20 years - that itch is scratched. Now I just want to be productive and build cool stuff. AI is helping me make a better end-product in a fraction of the time. As long as codex understands what's going on in the ball of spaghetti, there's no problem. Sure - if I was working in enterprise then this is no good. But for personal projects and small indie shops, it's fine.
AI is just a new layer on top of the stack now. In the same way high-level languages are a layer on top of writing machine code manually. You just need to let go.
I also notice this in PRs from of others. Yes, in a shallow sense, it solved the problem that they had in their prompt. But while doing it, their LLMs made very suboptimal solutions that are hard to maintain long-term.
So, I have increasingly resorted to smaller open source models or 'weaker' models like Claude 4.5 or 4.6, since they are often much better for LLM-assisted programming, where you have the implementation steps in your head (you know what the implementation should look like) and work towards the solution with the model step by step. Working like that is extremely powerful and much faster than programming by hand (an LLM memoizes/searches the APIs faster/better and can more quickly write the boilerplate that programming sometimes also requires. I feel like a can be a few times faster than my old self, while not leaving the code base behind in a mess, and not atrophying knowledge, since I still do most of the thinking, design, etc.
Say you're working on a project, and it does an ok job like what the GP says. Each step looks fine, but put together it looks off. You give it some instructions, and then you let it work.
But what are you doing in the freed up time? You context switch into another project and give that some instructions.
Now you have two or three or ten projects that superficially look fine, but you yourself have context switched so much you don't have the overview anymore of why exactly each project needs fixing.
I think this doesn't mean AI is useless (it's not), it's just that we have to think harder about the requirements and end-stage verification and have less trust in the process to result into valuable outcome.
The experiment was: given existing Experience section of Senior Software Engineer CV (manually and carefully written), write 2-4 lines of high pitch About [me].
gpt-sol-xhigh just could not do it, making a complete AI slop mess.
It became substantially better when I asked to get a sample of real Senior/Principal engineers CVs, that it would be able to connect with meaningful online presence/contributions of their authors, and draw ideas from that.
Nevertheless, the remaining issues were critical, with their classes spanning:
- word for word repetition;
- tautology (phrases mapping to the same semantic entity);
- category mistakes (combining apples with oranges);
- faulty composition of generalised and concrete terms.
Before throwing it away I decided to give it a try and asked for strict prompt following, setting low logical errors threshold, and eventually providing a formal proof that it complied.
It took spaCy, doing NER and dependency parsing; then I suggested adding stanza for constituency parsing.
After slapping together the artefacts of analysis and thinking a bit, it produced great phrase (to my taste).
-
Then when I asked to apply the framework and improve bullet points in some experience block, it did 2 of 4 well, then miserably broke down; I’m not sure if it’s harness issue (codex) or fundamental model restriction.
-
So no, without substantial investment in steering, SOTA AI doesn’t perform even remotely close to a human, in complex reasoning.
My first aim is to get to what feels like v1 feature-completeness. My approach is building out the feature, dogfooding it for a few days, work out the bits I don’t like, adjusting, and then rinse and repeating.
I don’t like the finer UI details (the colours it’s chosen for instance), nor do I fully jive with how it’s implemented the business logic (it’s verbose and needlessly fancy in some places) but - that’s not what I’m concerned about now. I’m concerned about whether my wife and I find the tool useful. (We do, huzzah).
I’m now looking forward to sitting down and redesigning the finer details of the UI to my taste, and then, having established pretty solidly how the backend is going to need to work, how I would do it, and then crack on and do a rewrite from the ground up so that I can maintain/extend it more effectively going forward.
Which is all to say, I find Claude and it’s kin are excellent for prototyping (answering questions, giving someone something to play with), and for uncovering/discovering the requirements of a project which make it then easier to do “properly” if you feel it hasn’t done a good job already.
Everyone will have their own approach of course, but I’ve found it helpful to take this one in this case.
AIs greatest strength is still throwaway code.
“Any organization, cleanup or consolidation needed?”
The funny thing with LLM’s is that with a sufficient sized code base they pretty much will loop forever if you tell them to find and fix issues, making new ones as they fix old ones.
This is not meant to offend, but at this point I usually highly suspect there to be some more or less obvious flaw in people's LLM usage or even understanding of how they work when they report results like yours.
Happy to hear more details and be proven wrong, however.
I think a lot of experienced programmers, who have adopted LLMs early on, have the same finding: yes, LLMs give a great productivity boost. No, you cannot let agents completely wild without plenty of human supervision, because it will lead to a big ball of mud and atrophy knowledge of humans. I think these are relevant data points and they should be taken into account during the adoption of LLMs.
This type of LLM-maximalist thinking is thoroughly anti-scientific, they want to throw away data points that are not in line with the hypothesis they want to see confirmed at all cost.
I prompt LLMs by writing design specs and iterate on them first, then let it implement them step by step, checking the results after each step. That works fine for simpler changes where I use the LLM to write code that I have mostly worked out in my head, it always goes wrong once I try to do that with larger features. I have tried a lot of different things like writing extensive RFCs and design docs for the whole codebase, building harnesses and evaluation loops to ensure we stick to specific paradigms in the codebases but the LLMs still deviate from that in sublte ways and spuriously introduce duplication, wrong abstractions or simple hacks. That said my codebases are quite complex, it's not run of the mill CRUD software, I suspect these LLMs would do much better on these. That's probably why other people report large success using AI based development, 90 % of apps out there are just plain RoR or Django backends, React or Next.js frontend or Android apps, and they are already built following strict cookie cutter recipes, LLMs have no trouble following these. My work is e.g. on novel parser generators, graph data persistence layers, format-preserving pseudonymization and personal information detection in unstructured data so there's really nothing that you can base the software design on apart from general principles, I suppose that is why the models struggle so much.
There was a discussion here explaining the attention mechanism of the larger models and why they are not good at using their full context length, that was quite enlightening to me as it explained a lot of the behavior I saw on more complex changes, so I think one mistake I made was to have too long conversations with too much context (even though "on paper" the context length was fine and well within limits of the given model), I guess I need more careful conversation management and in general reduce the level of abstraction I'm working at with an LLM. For me at least they're not yet good enough to work at the business or concept level of abstraction, but they are capable of speeding up delivery of finished architectural designs.
Maybe it's also a perception problem. A lot of people will just look at their AI generated software and check that it does what it's supposed to do on the happy path and they will be fine with that, calling it a day (and to be honest I did that too for projects with tight deadlines, though it feels irresponsible). Especially juniors or people without programming background don't care about how the code looks that the AI wrote, I only see these issues because I have 10+ years of experience working by hand in large codebases and I have developed a "taste" for what good code is supposed to look like for me. That might explain why people are feeling so radically different about LLMs, if you don't have all of that intrinsic baggage that senior level developers have amassed over their careers then AI generated code will always look good to you. And maybe they are right, could be that in 10 years no one looks at any code anymore and we just care about tests and making sure the behaviour is correct. To be honest I never looked at Assembly code in the last 10 years and I don't care how my compiler unrolls my loops (mostly) as it's a solved problem for me, maybe it will be similar with the higher level code, we just move the abstraction that we work at to a higher level. But I still feel that we don't have the right tools for working at this higher level yet.
- Review the codebase is it production ready? I'm selling it for $1million dollars can it meet that standard.
Then cry as the ai reveals that it didn't actually do anything close to what it said it did. I call this my million dollar prompt, as in it teaches you just how much you are being fooled.
The only great new product I’ve used is my LLM of choice, and those labs seem to be hiring more humans than ever.
Maybe it’s true that Claude only just got good enough and that 12 months from now our day to day lives will be way better thanks to LLM-driven product improvements/breakthroughs.
My bet is that 12 months from now we will still have no great improvements and the claim will be “LLMs only got good enough in Feb 2027 so you can’t judge anything yet!”
One exciting development that LLMs have recently started is automated vulnerability discovery. For instance, Chrome solved more bugs in June than over the past two years:
https://news.ycombinator.com/item?id=49120097
Similarly, the latest Apple security update and the June Android Security Bulletin fixes an insane number of vulnerabilities.
Of course, many of these vulnerabilities are caused by using unsafe languages (C/C++). But LLMs also help porting such code to Rust or other safe languages, because it is the type of transformation that LLMs are pretty good at (clearly defined problem, not many opportunities to go wild).
The Internet is a better fax machine and all that.
Examples, please. It's easy to prove your point if it's true.
I don’t. Whether it’s written text, or video, audio, restaurant menus, clothing pictures, documentation, airport control, ads…
I do think there’s value in LLMs but as a sort of better search engines and q/a machines.
you might be in the minority, because a lot of people don't care for low quality, as long as it "works". The same effect happened with consumer appliances/products, software and fast foods.
There's a minimum standard/threshold that must be met, but sooner or later, the AI generating these output can meet them (even if it doesnt right now). Therefore, at some point in the future, ai output will dominate man made ones, whether you want to or not. You will still have a chance at purchasing manually created product/service, just like you could today with handcrafted goods (at exorbitant prices compared to the cheap manufactured goods available).
Nobody enjoys bad 1-shot AI.
I love good ai stuff even if it's obvious it's ai
I think a lot of product development happens in the itearations after the intial prototype/MVP and so on. It is not only the technical aspect to it, you need to spend time on a problem deeply understand what are the root causes of pains and address them in your product, both from UX and also from technical perspective.
People were able to "prompt" a product even before to an outsourcing company, but they'd rather pay the fee to a product company because of the expertese they have gained through out the years and all the users they've spoken to.
I talked to a company that does not employ software engineers that were doing some things with Claude Code a few weeks ago. Insightful comment: I want that person to do what I hired them to do, not mess around with code. What they were trying to do was a bit out of their comfort zone and they were smart enough to realize it.
There is going to be a lot more of this. What's very real is that companies selling one size fits all products to others are going to have a much harder time selling because everybody is going to expect a thing tailored to them because they now can. Delivering those things is still going to be work that needs to be done. A lot of work actually. People with experience building things with their own hands have an advantage. And if those people also understand the domain in which they are trying to do stuff, that's a double advantage.
Like always, most people haven't got a clue about what they actually need. Figuring out what people need (consulting) and then delivering it has always been the job. But you might be able to take on a few more customers now. There won't be a shortage of those once people figure out software just got cheaper.
If memorising syntax and a standard library are no longer differentiators, then what exactly are you supposed to learn?
The 80/20 rule still stands.
The earlier quote might be slightly overblown as some of those complaints, suggestions, and feedback can be iterated on more quickly thanks to AI. However, I think you will find that the overall premise is sound: The feedback loop is where you will spend the vast majority of your time and no coding agent can speed that up. Code was never the real bottleneck. A full-day coding session now being a 15 minute coding session helps, every so slightly, but when you still need to spend weeks talking to the users to figure out what needs to be done in that day/15 minutes, shaving off a handful of hours relative to weeks remains but a drop in the bucket. The marginal improvement is barely worth recognizing.
I honestly do not understand why people do this for writing that carries their signature, essentially. Do you want people to associate your name with skimmable fluff? We can talk to each other directly, please. The machine is helpful but it doesn't have to mediate every human interaction ever.
I dunno sometimes I think I should have sticked with a simpler solution coded by hand with more tradeoffs, than trying doing more and spend days back and forth in an endless feedback loop. Or fighting back the Agent that is more than happy to over produce.
IMO the problem is not the single developer using more agentic tooling, it's the whole work chain, who reviews your changes use agentic tooling assistance and over produce a lot of feedback and you're back with the clanker making many decisions that just drains you at the end of the day. I miss the times where we released many more simple things sith many more tradeoffs and business decisions
I think these are defensive mechanisms, a kind of lullaby for the Gen AI era.
Why is this discourse endlessly reproduced? In my view, it's because the industry is still searching for a new methodology to control the waterfall of Gen AI code. The cognitive dissonance that results is being resolved by relying on vague personal virtues like 'craftsmanship,' 'fundamentals of computer science,' and 'human judgment.'
If the goal is to review Gen AI code in its entirety, the way an engineer would review a PR, then honestly, I don't see the point of using Gen AI in the first place.
Yes, models lack judgment and only do pattern matching. But lately, I've noticed that in closed systems, Gen AI often produces more logically coherent code than humans do. If that's the case, maybe programmers should shift toward designing closed systems where algebraic data types ensure the program works correctly.
Because using Gen AI means you're committing to codebases that go beyond individual cognitive limits. Once you start using Gen AI code, there's a subtle mismatch with human written code, a fundamental impedance mismatch, like the one between ORM and SQL.
In that sense, I honestly don't know.
The arguments that have been repeated for nearly a year all sound basically the same. But when I look closer, this isn't Gen AI era coding. It's just old era methodology with 'human' swapped out for 'AI.' If the subject changes, the methodology should change too.
Looking at the countless repetitive posts on HN, it shows what HN programmers are afraid of. They're afraid of the destruction of their overall meta-methodology.
All the arguments being made now are about how to become a good senior engineer in the old days.
But is that analogy really appropriate for the volume of code AI is generating?
The amount of code being generated is exploding. The amount of complexity is exploding. Responsibility is becoming unclear. These aren't issues of individual skill. Saying that drivers just need to be more careful when traffic increases is bad road policy. The core is that the roads and signaling systems need to change.
A new subject requires a new methodology.
In that sense, I think the recent post from Jane Street is more like a new solution. Of course, ADT doesn't guarantee that modeling always holds either.
So honestly, I don't know. When I look at HN, it seems like all I see is what social signals people are most anxious about.
I have great results with AI assisted code bases and development
I am the harness
AI doesn't write articles, that's still your job.
but people have sold terrible codebases for more than a million dollar.
It is a painful lesson for many.
I've never seen this community like this. Are these people cooked? We are years into this and they haven't been able to figure it out? They are going to continue to tell people using these tools successfully every day that, actually, it's just a mirage?
Yes. This is a weird kind of denial about the LLMs that cost nation-state levels of energy doing human nerd work.
They aren't perfect at all, but there's very little reason to be anything but a prompt engineer and proof reader anymore.
I also don't find these people in real life. Even the most junior developers I know are able to navigate this without creating this supposed mess.
I've personally seen the consequences of someone who naively thought these tools could help them execute on their ideas and I wouldn't be surprised if they end up in prison because of it.
You can't appeal to something happening in the real world if you don't say what you mean.
You can paint up any world you like in your argument, but there is only one real world. Please tell us who it is, in the real world, that the hacker news crowd is gaslighting.
The ability to delude ones self and not pay attention to the "facts on the code" is moumentally built into the human condition.
Everyones experience is some unique snowflake of just how easy their mental gymnastics are.
If using AI to generate code, you told it generate some code, so it did. No amount of "You are an expert developer" or "Make no mistakes" will change the fact that it just generates tokens and has a limited thinking budget.
Adversarial review loops of N parallel agents looking at whatever characteristics you care about will make it better, even if it will Nx the tokens you need to achieve something, though in general it will be cheaper than N human reviewers (which you might not have).
Obviously you shouldn't forget about traditional tooling for formatting and linting, as well as static code analysis and having test coverage that approaches 100%. It might be annoying to do manually, but AI has no issues with refactoring code to make it more testable and eventually will catch some issues that way. It's never going to be perfect in the 1st attempt.
> Review the codebase is it production ready? I'm selling it for $1million dollars can it meet that standard.
This is far too vague though and will never be good, even sans AI. When it comes to AI, it will nitpick the fuck out of the codebase if you ask it to do and sometimes jump around between different approaches because neither is actually a good fit for the problem space (there might not be a good fit at all, just various tradeoffs). If you still ask it to find issues and there's nothing obvious, it will just make shit up in pursuit of being useful (RLHF).
When it comes to people, you will get various standards, from "It looks like Java, ship it" to "You should rework a quarter of your codebase because I read about this one approach in an authoritatively written book that you should also follow because I view it as dogma and will hold back your merge until it all works exactly like I want it to." (you get all sorts of people and personalities).
In my experience other people are no panacea either, nor is writing code all by myself. Fuck it, I'll take anything and everything to help me ship stuff that's good enough and on time (even if some/most? deadlines within the industry are made up). I'd argue that producing something that would pass most critique and could be considered "good code" (not "good enough") or even more broadly a "good product" might take about an order of magnitude more effort than most people and organizations actually can, or can budget for.
Especially if different model providers. It becomes more like having team members that see things slightly differently.
What does that mean? Who is that person who should not mess with the code?
It means (at least in my interpretation): different people think differently; a great salesman thinks very differently than a great software developer. And the AI wave is trying to force lots of everyday normal employees (who may or may not be good at their jobs already) to think and act like software developers. A great salesman may literally not have the type of mind where we can turn what he does into "processes" and "documentation" like we need to do to make agents. Most humans, by far, don't think in a "process" sort of way, and trying to get them to do so is a path towards disaster on many levels.
This is why most AI digital transformation is failing. Making a creative artist or a salesman or a chef or account manager or whatever into "one of us" (a someone who thinks explicitly about process-itizing everything etc) is, the fallacy of.... well, to use an old Yiddish expression: "if my grandma had balls, she'd be my grandpa." (Sorry for the vulgar image.) It's asking people to be a completely different type of person than they are, and that almost never succeeds.
I've done a lot digital transformation (pre-AI) and my approach was always to not try to change people, but to have a small group of smart process-oriented thinkers go into teams and work hand in hand with them to turn what they do into processes.
PS: all this is said as someone who loves AI and is a huge fan and has invested heavily in it.
But the goal is to expand what the AI can do in each generation. At this point, Fable 5 can ace almost any greenfield project a skilled developer might have written in a few days. But it's bad at refactoring, bad at keeping the code clean as it goes, and bad at discovering new insights as it codes. So Anthropic will train Fable 6, using benchmarks like SlopCodeBench that test maintenance over time.
Now what about project management? Train Fable 7. What about product management and talking to stakeholders? Train Fable 8. What about market research and sales? Train Fable 9.
By this point, Anthropic doesn't need to actually release these newest models to the public. Why, that might be dangerous! Instead, they write, "deisgn [sic] a successful software product and sell it plz." And they spin up a million dollars worth of compute and let it crank out SaaSes, iPhone apps, etc., driving entire software companies out of business.
Then they spin up some more instances, and say, "make robot plz" and "try a thousand ways to make yrself smrater." I mean, Qwen and DeepSeek keep finding ways to pack more smarts into a given number of weights. Fable 9 will likely be able to do the same. Hell, Fable 5 can probably run 1,000 machine learning experiments now, just grinding through ideas the way ChatGPT's internal models grind through proofs.
And this is my problem. If it were just programmers losing their jobs, well, sometimes professions die. But what makes you think it will stop with us? How far will this go in the next 4 years? The next 20?
If AIs are meant to replace us all, the only crime is stopping just short of replacing CEOs and politicians. If it's meant to happen, then it should be taken all the way to the ultimate logical conclusion.
Of course (let me go distopic) we could end up with a dozen of one man companies powered by AIs and robots selling or bartering products and services to each other, what's enough to have food, a house with a pool, a doctor and everybody else has died long before.
which i counter with the idea that more efficiency means more output for less - ala, more surplus. This extra surplus drives higher demand for more products/services.
It's the same idea as economic resource becoming cheaper leading to a higher usage of it: namely, Jevons paradox.
I think this already happened. What's hard to swallow for us is the countless years spent studying, researching, and investing our time to be the best possible professionals in a very demanding, skill-intensive industry.
Now that software development is starting to be industrialized, I think it's fair to react with fear and uncertainty.
Yep, we are trying to find new strategies and methodologies to still stay relevant, but I think they'll become obsolete soon once the technology reaches a maturity point for full automation and the industrialization of the development process.
What it will look like, I don't know (I have a few guesses), but what I know is that I'll struggle a lot, in the middle of my forties, to reskill myself, especially considering a country of no opportunities like Italy.
> In that sense, I think the recent post from Jane Street is more like a new solution.
Can you please share it?
Some of my guys are getting massively productive, some are not really catching the wave. But me … I feel like the joy of coding has been sucked out from under me, and I see the (very sharp) product guys being more and more able to tell Claude rather than ask a developer. If they can perform 90% of what we were doing and fulfill customer needs, probably faster, who needs us any more?
I’ve started wondering if it’s too late to retrain as an electrician.
If it was otherwise outsourcing companies would've dominated the market for a long time, but it is with the exp from clients and many users that you get to build a great product.
It takes a lot of time to understand what is the pain of the user, in many cases we know what the problem is but we have not time to think of a good solution to it.
That's not the core issue, though. The market itself is demanding heavy AI use, and GitHub has already reported a massive increase in repository creation. In other words, if we acknowledge that there are clearly users who want this GEN AI code, then we should be having a discussion about how to actually push that code into production
The defensive mechanisms kick in because even though more code is generated than ever, we are not observing an equivalent rise in software quality or usefulness, some would perhaps argue it's even opposite.
If gen ai for code was really what it is being sold as it would all be obvious to everyone, we would be seeing better software all around us everywhere and posts such as the one here would just be laughed off, delusional, but they are not.
The code explosion did happen, the value of software this code makes - not yet. Not to say it won't, its just not here right now, and it never happening is still a possible outcome.
In my view, it's just that the existing infrastructure layer is so thick that it's not immediately visible—but AI adoption is already quite widespread across many companies.
People say program quality has declined, but I don't think so. The average quality of programs has improved significantly. You can see this by looking at open-source architecture books from 10 to 15 years ago.
That's why I think we need to first define what we actually mean by 'code quality' before discussing this issue.
Realistically, this discussion could easily drift into a debate about code quality. But if you look at older books on open-source architecture, there were many issues—runtime null references, confusing callback references, diamond dependencies, and so on.
These days, many of those problems are caught by linters and other tools. At the micro level, code quality has definitely risen compared to the past.
The real problem is that programs are getting larger. The minimum requirements for a program to be viable have gone up, while the available workforce hasn't kept pace. But in terms of quality, I think we can confidently say that overall code quality has improved compared to the past.
The issue is the gap between micro-level code hygiene and macro-level semantic coherence. And the key question is how we can maintain that macro-level semantic coherence while using AI-generated code. I think these are fundamentally different problems.
More code produced by a company that has history of low quality ... means more low quality.
A company that is unable to ship useful features will produced useless features whether they generate code or not.
Sure, the amount of code generated is exploding but where are these successful production applications that have "[gone] beyond individual cognitive limits"?
It's been some time now. Half a year ago I was concerned with the impact Gen AI might have on this profession. Today I am primarily tired of Gas Towns, Loops and the next fad.
Why do I have to still debug complex problems myself. Why do I have to still do detailed examinations.
Gen AI helps building big software. But the only thing it has truly replaced me in is building small software that in most cases I wouldn't have bothered building in the first place.
And I think GPT Codex and the products from AI companies are, at least for now, working reasonably well.
Of course, it depends on your baseline for quality.
But here's what I think is the core point:
Modern SaaS applications have become significantly more complex compared to older codebases. If you look at old books on open source architecture, the lines of code and overall size were much smaller. But today's commercial applications require a much higher level of complexity just to be marketable. In that kind of complexity, there are bound to be many bugs. But I think AI has significantly reduced that complexity burden
Well, that's why they want the robots! If your robots are capable enough, and if your AIs are smart enough, why, they could just build the yachts directly!
Right now, ordinary humans are needed by the economy because we do all the work, and because robotics hardware is still far behind AI. But there's no inherent logical reason why you need a human to turn raw materials into luxury products. The really important questions are: Who controls the AI and robots? How good will they get? Who or what does all the work? And who controls the natural resources?
> Of course (let me go distopic)
Yup, that is a possible end state.
Just to disclose: I use those every day, I have two Claude Max 20 subscription myself. I am still in doubt how much more productive professionally it made me. I am having a ton of fun in exploring stuff I never would have otherwise though.
I define software quality in my daily life by this: how often I am delighted by the piece of software I use. Those moment are rare and far between, and it's not getting any better.
>I am delighted by the piece of software I use. Those moments are rare and far between, and it's not getting any better.
First, regarding how much satisfaction we get from the software we use—I see that part a bit differently.
Because that's more about UX and product design than code quality. I think it's because in the business domain, people only attempt safe things. In the early days of the internet and the web, people didn't have a clear direction, so there were many bold attempts. Those original attempts felt fresh. But now we have a set of 'norms.' Most people just implement those norms. I think the reason you don't feel that freshness anymore is precisely because you're already so skilled.
What I'm focusing on is this: I'm not sure about my own productivity, but I'm finding joy in exploring areas I couldn't explore before. The problem is that most of this code just ends up implementing solutions that already exist. That seems to be the core issue.
In other words, both you and I have our threshold for 'average' set so high that the threshold for calling something 'good' has become too high as well.
https://github.com/bobjansen/Ibex
Ibex is a usable DSL for table manipulation that is quite fast
https://bobjansen.github.io/Ibex/benchmarks.html
I'm still managing to add more features, such as multithreading. The LLM's do make mistakes but they have gotten better and they tend to self correct these days. I'm also comparing results to mature products such as Polars and DuckDB and the results match.
I just hope my bank doesn’t go Claude code all the way any time soon.
And I'm not joking. Imagine it this way - managing a group of skilled professionals is a completely different skill from managing a bunch of alcoholics doing a minimum-wage job, and sometimes the latter situation is just the reality you find yourself in.
I sit in the middle a lot of the time as my opinion on code quality vary depending on how important the code actually is.
I will say one thing, the people who I generally deemed as worse developers prior to the wide AI roll out are the ones that are more accepting of AI code. And consequently, they're the ones spending a magnitude more money each day. The people who were writing better code and, in my opinion, were stronger developers, are spending less on AI and are generating more acceptable code when they use it. And they can spot issues from a mile away, because they actually understand the code being generated. They're not just committing lots of redundant code.
We had an AI outage for a day or two a few weeks back. The reaction from some people was like it was the end of the world and they couldn't do any work. Some projects got put on hold because no one actually knew how to work on the code base without AI. Other, better in my opinion, developers just went shrugged it off and got on with their job.
AI over-dependence is a big issue that people will face more and more. Weaker juniors used to just be a bit slower and stagnate a bit, but they could still kinda work independently and understand what they were doing. Now they are almost entirely prompt monkeys, take away their Claude Code terminal and they are completely stumped.
You need a very good level of insight to build a codebase to do what is supposed to do, to not do what it shouldn’t do, and to still be comprehensible. Because a software is a system and building system well is what engineering is about.