The quality of the output is so variable. It depends on the model, “effort level”, prompting, probably even the programming language/app functionality, and libraries involved. For example, I find LLMs are best at making simple web apps. These web apps, while simple, would still take a senior engineer perhaps a week or two to create, but LLMs can spit them out inside of an hour. Conversely, LLMs struggle with things like Docker or local model stuff. Parallelization of code is a mixed bag. In these areas I think it often would have been faster for me to write the thing by hand.
I'll give a recent example: the past month I had been using Codex cloud and it was working great writing Rust modules. Suddenly last week they made a few changes and everything went to shit, couldn't get a single good result out of it. Same text box, same prompting, same model, totally different results because they changed the cloud tool's resource limits.
So whereas before my debugging time would have been spent in Rust docs looking up traits and such, these days I feel more like an AI therapist trying to figure out why it's not feeling up to task on any particular day. It can be anything from regular service outages to geopolitics that on any given day my workflow is fucked up.
In my before-AI workflow, I was never restricted from compiling Rust code because of concerns that Cargo is a national security threat. So you really have to broadly scope the notion of "reliability" with these AI tools; it's much larger than whether it can give a good output but whether it can do so consistently enough to depend on.
"unless you're content with producing low quality work." - With the right guiding hand, it is a productivity multiplier without compromising quality. As a fully autonomous developer, it is a disaster.
> With the right guiding hand, it is a productivity multiplier without compromising quality
This just reads like another variation of “it’s the user not the tool,” which is just endless runway for always blaming people and never acknowledging the limitations of LLM’s.
I’d be curious to hear how the recipients of your work enabled by the “productivity multiplier” feel about the quality.
You can't play an entire orchestra's sheet music on a single guitar either, but your playing ability still matters a lot.
I would say that as of July 2026, with the right scaffolding, you can get reasonably good output out of a LLM, or better a combination of LLMs. For example, it pays off to prepare an implementation plan with one LLM and then let another LLM check it for flaws, then again. After several iterations like this, you will have a plan better than whatever you could come up with yourself.
It often is the user and not the tool. LLMs are complicated, have nontrivial failure modes, and the user needs to steer them carefully. They might be the most complicated tools on the planet right now.
Anecdotally, the recipients of my work have become visibly more happy in the last months. LLMs are great at diagnosing subtle problems which tend to appear at Friday night only, and this is the sort of problem that bugs actual people the most.
> I would say that as of July 2026, with the right scaffolding, you can get reasonably good output out of a LLM, or better a combination of LLMs.
Totally agree, I don’t think I said or implied otherwise.
And yes can it can be the user and often even is, but when it comes to any LLM conversation I’ve been a part of it seems people think the only answer is “you’re using it wrong.” Evangelists swear it’s a 100x multiplier and anything counter to that means you’re either a Luddite who is blinded by politics or are too dumb to use the tool.
I don't think it is "you are using it wrong". It is just that originally mediocre programmers still generate mediocre output (or worse sometimes) faster and originally good programmers generate good quality output faster. LLMs have not changed that yet.
How are junior devs becoming qualified “guiding hands” these days? If the expert with LLM assistance is multiplied, what’s a company’s incentive to pay for a junior, and how would they train to get good in these conditions?
I agree on this one. Junior developers are not yet good guiding hands yet.
But for the motivated junior developers LLMs are a great onboarding and learning tool. A good senior engineer must still guide, and there are very large gaps on how it's being done
Juniors are still useful, but not as pure "coders". The juniors you want to hire now can wear product, engineering and QA hats, and are self starters with good attention to detail and AI skills. These types of people are actually a bargain.
I produce code that is significantly higher quality with the assistance of coding agents, because I no longer succumb to the temptation to cut corners due to lack of time.
One example: everything I do is properly tested and documented now, even the most trivial of changes. Previously I would have weighed those tradeoffs and sometimes decided not to bother with the tests because they weren't worth the time.
> because I no longer succumb to the temptation to cut corners due to lack of time
No offense, but that says much more about the way you approach programming than about the quality of LLM outputs.
In my experience, LLMs are the ultimate corner-cutting tool. With LLMs, I now succumb to the temptation to cut corners, build something I haven't properly researched and don't fully understand, prioritize shipping quantity over quality.
Without LLMs, I have to understand the domain and the tools and ultimately my full solution (with all its warts and limitations). When I really care about the project and consider it "my baby", LLMs are out of the picture.
Software engineering is about tradeoffs. The single most important tradeoff is always time: this feature would be better if I did X, but doing X would take me Y hours, is it worth the time or should I spend that time on something else?
Not having to type in and then iterate on the code manually has a material effect on those time calculations.
I absolutely agree that you need to understand the domain and code and tools. That's what I want to spend my human time on - not typing in the code and sweating over every line of syntax.
I agree, good software engineering is largely about making good trade-offs.
However, I completely disagree with your characterization of LLM coding as saving you "typing in the code and sweating over every line of syntax".
Claude will happily architect complex layers of OOP, multithreading, SIMD (a "personal favorite" of both Claude and ChatGPT).
If you don't immerse yourself in the details, you will never know if you made the correct engineering trade-offs, let alone whether the various "optimizations" and clever solutions by the LLM actually work.
I think you're referring more to product strategy trade-offs than engineering trade-offs here; so yeah, getting something you don't understand out the door is often the fastest path to sales. This is also how we get so much low quality and unnecessary software out there (it was true before LLM coding, just amplified now).
I think a reasonable tradeoff, in theory, would be: use the LLM to help you explore the space of solution, then dive into the details and choose the path that feels right. However, I highly doubt most people do that. It's also easy to let the LLM's first solution influence your understanding of the problem, so that you will never truly explore novel solutions that fall outside of the most likely token sequence prediction.
Oh and LLMs when properly constrained can also do pretty good "auto-complete on steroids", which can definitely save you typing a lot of boilerplate. If that's how you use them, then your characterization is correct.
> I think a reasonable tradeoff, in theory, would be: use the LLM to help you explore the space of solution, then dive into the details and choose the path that feels right.
Oh absolutely. One of my favorite prompting patterns is "suggest options for X", followed by serval rounds back and forth to discuss tradeoffs and maybe introduce new ideas into the mix.
I also use LLMs to build exploratory prototypes. I'm working on a project today which I've had different coding agents build a total of four times already. Those explorations gave me the confidence to dictate a finished solution that I'm sure will work well against all sorts of future cases.
Your perspective is one that assumes a single entity is using AI, rather than disparate groups of people working on disparate problem spaces/topics, each with different "intelligence" thresholds for them to say "good enough". The goal post isn't changing, it's that there are multiple problem spaces with completely different, fixed, goalposts.
And even then, within a single group, you'll have multiple thresholds, of "this really helps make my coding more productive" to "I no longer type code, just review" to eventually "I'm no longer employed".
Here's the rub. They produce low quality work according to your rubric. If that was the universal rubric, they would already have RL'd against it, and you'd like the work they produce.
I wouldn't say it like that exactly, though you're not wrong either. People just heavily discount the value of future efficiency gains due to nuanced architectural/stylistic choices. I think this is in part because people have a limited expectation that the code will survive long enough for it to matter, or that they'll be at the company long enough to reap the rewards of the up front work.