Server Programmer and Architect (Worked for Microsoft, ArenaNet: Guild Wars 1 and 2). Interested in high performance distributed and multi-threaded system.
We have two common observations about AI coding.
At one end of the spectrum, people say programming is over. We are all now program managers: we decide what to build and delegate the coding to AI.
At the other end, people ask, “Where is all the great software AI is delivering?”
I believe these opposing views run deep. They reflect the difference between software as an industry and software as a craft.
Recall Henry Ford’s assembly line: it frustrated workers but made cars affordable.
Much the same is happening with software. You can build a new web app in hours with AI. It will be generic, inexpensive, and often better than what you could craft yourself in the same time.
For many, that’s enough: a generic app that is slightly limited and not too polished.
Yet many people in the West still build businesses selling carefully designed products atop this generic infrastructure.
Things get interesting when AI is used by craftsmen who truly care about the end product.
Using AI as a craftsman takes longer to bear fruit because it is harder.
Here is how I have used AI in recent months. I start a project and ask AI to sketch a solution. It works.
I could stop there, post the code on GitHub, and move on. In a year, I would produce 400 new libraries—the sweatshop model of AI production.
Instead, I treat the AI output like a human research assistant’s draft: “Nice proof of concept!” Then I spend weeks mercilessly reviewing and refining the code.
Importantly, AI’s greatest value may not be writing code. I use it as a research assistant: “What if I did it this way?” I can test ten designs in parallel and discard them all. That freedom is valuable.
I continue until my code far exceeds the state of the art—well above what lazy prompts would produce.
This craftsman strategy is bearing fruit. It may lead to a golden age of software. But by nature, it is slower and less visible.
It is slower partly because we are still developing the right processes.
Few will do this.
I roast and grind my own coffee. Most people buy overpriced capsules. My coffee is in a different league, but most don’t know what good coffee tastes like.
The same applies to software. Many think Microsoft Teams is good software. If you sell to those customers, simple AI prompting is enough—and if you become a billionaire, good for you.
But I predict a lasting market for the kind of software a small team of dedicated craftsmen can produce with AI and other tools.
Mark Frauenfelder’s book Made by Hand is relevant in this context. Roasting is a hassle. Why do I do it? Why bother making crazily good software if so-so software is enough to pay the bills? Many people won't like the answer: it is a spiritual issue. Once you have enough to eat, why do you build anything? If I chose to be frugal, I could probably retire today. Eat spaghetti. Scroll the web.
Some people will reply that it is all about status competition. But roasting my own coffee does not make more popular with the ladies. If anything, it makes me weird. Yet it also makes me happier.
For many of us, the craft is the point. And AI won't change that.
Microsoft, along with Apple, was one of the companies most likely to benefit from the AI breakthrough. They have trust and brand recognition.
Apple has done little outside of providing great hardware.
Microsoft chose another path. It did what I would have done as CEO: it bet the farm on AI.
Why not? It has enormous trust capital. Enterprises worldwide trust Microsoft blindly with their data. Microsoft is the ideal enterprise AI vendor.
And yet…
Microsoft has put “Copilot” (its word for “AI”) everywhere. I see it in Microsoft Word when I am unlucky enough to use it. I tried clicking the Copilot button once. I am not sure who it is for. Copilot is in Microsoft Teams, which I am compelled to use regularly. I am also not sure who it is for.
What I find fascinating is that “decision makers” do not seem to view Microsoft as a potential AI vendor, despite everything it is doing.
Part of the story is branding. Many people love Microsoft Word and cannot imagine living without it. But are these same people eager to see their workflow transformed by AI? It seems not.
Microsoft is enterprise-oriented. It is safe, secure, and boring. That is how we like it. These AI Copilot buttons feel out of place and out of brand.
If you pick a random business client from Microsoft’s stack, you will find that their “AI strategy” consists mostly of “wait and see.” Their employees do use AI, but most probably via their own OpenAI accounts.
Let us be serious: if not for video games, Microsoft Windows would be the “old people system.” On campus, you see kids with Windows laptops, but they are really gaming machines.
Microsoft itself is trapped in the very profitable enterprise segment. These customers are still in the shocked-and-awed phase of the AI breakthrough.
Earlier this year, Becker et al. (2025) reported that using AI tools to code made developers less productive. At least one Microsoft manager thinks that AI can rewrite the Microsoft codebase in the next five years.
So, what should we think?
Let us get out the way the notion that I am a luddite. I use copilot daily. I think I was among the first users outside Microsoft/GitHub as I was given early access. I might have been the first university professor in Canada to deploy OpenAI chatbots in his classes; I even ended up on television (French CBC). All my students are instructed to use AI.
Does AI make software better and cheaper ?
I don't know.
But we do know a few things.
1. The software that I got to use this year was not significantly better than the software that I used in prior years. I was forced to use a new web system for my work this year (I won't give name) and the thing looks to have been vibe coded. It is mediocre. Some people at Microsoft think that they can rewrite their whole codebase, but I have yet to see Microsoft Word and Microsoft Teams get qualitatively better. Microsoft added an AI button to Microsoft Word, but do we care?
2. I participate in wide ranging software projects used by millions. The bugs are not getting fixed massively faster. The new features are not just jumping out of the box.
3. Developing software is not primarily about typing code. There is a lot of work involved, much of it based on social interaction. The totally stupid stereotype of the software engineer as someone you can't communicate, and doesn't know anything about anything but technical specifications... is so far from the truth that it is almost a reversal of reality. On this last point, I'd be Elon Musk if I had a penny for all the times that a star software developper told me « I could have written this great software but I couldn't because my organization wouldn't let me »...
Great software is written but do you feel that software is qualitatively better?
Antifragile Programming and Why AI Won’t Steal Your Job
Whenever I say I dislike debugging and organize my programming habits around avoiding it, there is always pushback: “You must not use a good debugger.”
To summarize my view: I want my software to be antifragile (credit to Nassim Taleb for the concept). The longer I work on a codebase, the easier it should become to fix bugs.
That’s not natural. For most developers lacking deep expertise, as the codebase grows, bugs become harder to fix: you chase symptoms through layers of code, hunt heisenbugs that vanish in the debugger, or fix one bug only to create another. The more code you have, the worse it gets. Such code is fragile. Adding a new feature risks breaking old, seemingly unrelated parts.
In my view, the inability to produce antifragile code explains the extreme power-law distribution in programming: most of the code we rely on daily was written by a tiny fraction of all programmers who have mastered antifragility.
How do you reverse this? How do you ensure that the longer you work on the code, the shallower the bugs become?
There are well-known techniques, and adding lots of tests and checks definitely helps. You can write antifragile code without tests or debug-time checks… but you’ll need something functionally equivalent.
Far-reaching prescriptions (“you must use language X, tool Y, method Z”) are usually cargo-cult nonsense. Copying Linus Torvalds’ tools or swearing style won’t guarantee success. But antifragillity is not a prescription, it is a desired outcome.
Defensive programming itself is uncontroversial—yet it wasn’t common in the 1980s and still isn’t the default for many today.
Of course, a full defensive approach isn’t always applicable or worth the cost.
For example, if I’m vibe-coding a quick web app with more JavaScript than I care to read, I’ll just run it in the browser’s debugger. It works fine. I’m not using that code to control a pacemaker, and I’m not expecting to be woken up at midnight on Christmas to fix it.
If your program is 500 lines and you’ll run it 20 times a year, antifragility isn’t worth pursuing.
Large language models can generate defensive code, but if you’ve never written defensively yourself and you learn to program primarily with AI assistance, your software will probably remain fragile.
You can add code quickly, but the more you add, the bigger your problems become.
That’s the crux of the matter. Writing code was never the hard part—I could write code at 12, and countless 12-year-olds today can write simple games and apps. In the same way, a 12-year-old can build a doghouse with a hammer, nails, and wood. Getting 80% of the way has always been easy.
Scaling complexity without everything collapsing—that’s the hard part.
About 20 years ago, I got obsessed with my productivity. I would measure everything I did. And the inescapable truth was laid bare: I was highly inefficient.
And then I realized something: my productivity varied wildly depending on who was around me.
About 20 to 15 years ago, my life bifurcated because, in some real sense, I became less tolerant... of nonsense.
We no longer have half naked men raping and pillaging, but we have plenty of people who can't build anything of value. They create nonsense everywhere they go. They are our equivalent of the barbarians.
Civilisation works because we have borders. Once the barbarians got into the Roman Empire, it was the beginning of the end. Your own life needs to be organized with borders.
Don't let the barbarians near you!
As the barbarians go through a place, nonsense is sure to follow.
Keep a fence around yourself. Working with the right people is likely the most important choice you can make.
You want to be around people who like to build useful things. It could be actual buildings, or software, or cars, or roads... does not matter.
Barbarians hide in every corner. They look nice, but they will drag you down into... nonsense.
😃 The Natasha neural network turned out to be 700 Indian programmers
The startup BuilderAI offered to write any application, like in a constructor, by selecting the necessary functions.
In reality, customer requests were sent to the Indian office, where 700 Indians wrote code instead of AI.
With the help of this scam, the startup attracted $445 million in investments from major IT giants, including Microsoft, over eight years.
At the same time, the applications “written by AI” constantly glitched, the code was unreadable, the functions did not work — in general, everything was like real artificial intelligence.
After the deception was exposed, the startup officially went bankrupt 🤷♂️