Before LLM coding agents, it was quite possible for companies in high-income countries to apply the same basic approach to programming: a high-wage software engineer or product manager could hand off issues to an outsourcing company that would randomly assign them to one of many software engineers in a low-wage country.
Nonetheless, even companies that wanted to reduce wages mostly decided they wanted long-term employees working on writing code, instead of a random person with no context working on each issue. So they opened offices in low-wage countries and hired employees there. And there were still plenty of software engineers in high-wage countries.
Why? Because a software project isn't just the source code, it also involves a huge amount of human knowledge and understanding, both explicit and implicit. Some of it is very hard to articulate, and in practice most people don't even try.
A lack of such understanding might be fine for simple projects, where the exposed UI matches the internals enough that product management is sufficient. But beyond a certain level of complexity you need someone to understand the why and how of software in ways that the source code by itself cannot express. Thus, software engineers who were employees.
But now we have LLMs, which can be used for vibecoding without reading the code... with the exact same problems as 100% outsourcing.
And so you get projects like ParticleDB. To quote @aphyr 's assessment:
"ParticleDB was a fractal of correctness errors. LLM tooling repeatedly claimed that bugs had been fixed when, in fact, they had not. ParticleDB also seemed more difficult to understand than typical databases. ... [software engineers working on ParticleDB] seemed unable to explain the causes or resolutions of nearly every issue we found in ParticleDB." (https://jepsen.io/analyses/particledb-1.1.4)
Or, as he put it in a less formal summary: "When does 4 = 5? Why would strings become 8-bit integers? And how could an SQL table have rows with different columns? We don't know, but it's fun to imagine!" (https://mastodon.jepsen.io/@jepsen/117535799639100730)
(This post inspired by a idea from Hunter Madison: if you can replace the word "LLM" with "consultant" and an article still makes sense, it's not an article about programming.)