Make it better
More than ever, work is never, over.
If you are a professional software developer,1 it is tempting. It is tempting to open Claude Code—the most popular talked-about app on today’s internet; the new Cursor; the must-have stocking stuffer of this holiday season—and YOLO-mode an expansive new feature into your product. It is tempting to one-shot your side projects from your phone. It is tempting to throw your hardest problem at it, and let it cook. It is tempting to bookmark that famous tweet, set up five Claudes in your terminal and ten more in your browser, and go scorched earth on your backlog, until your app can do everything.
It is tempting for a few reasons. One is practical: Because that is what customers want. Every customer wants every tool they use to work a little differently, or do a little more.2 Every customer has ideas about how you can be better. Every customer uses a different combination of adjacent products, and wants integrations into all of them. And if you do things A, B, and C and integrate with partners 1 and 2, and your competitor does A, B, D, and E and integrates with 1 and 3, why not simply manifest D, E, and 3 into existence?
Another reason is economic: Big is what we have to build now. If everyone can build their own made-to-measure apps—decentralized apps; personal apps; custom-designed, one-of-a-kind bespoke apps—there is no market for small conveniences or narrow delights. You can’t make a living with 1,000 true fans, because they will do it themselves.3 So our job is to build the big projects that amateurs cannot: The agentic enterprise data platform; the all-in-one tool for email, CRM, project management, and more; the revolution that generates “infinite revenue.” When anyone can create software, it is tempting to believe that the difference between a business and a hobby is simply a matter of scale.4
The third temptation is emotional: Blasting through fresh powder is fun.5 Nothing is more satisfying to a software developer than a wide-open idea with no debt or technical dependencies. This has always been true, but it is doubly so today: You can throw a half-written idea into Claude—“add support for collaborative editing” or “make me a sound mixer” or “start a business” or “do an arbitrage”6—and it does a startlingly good job of filling in all the missing details. What fun, to be the field general,7 allocating and delegating and strategizing, commanding armies of agents around a little map, while they worry about all the irritating logistics.
This third temptation can also make doing the opposite thing—working in old projects full of cruft and tar; tediously adding polish; fixing impossible bugs—feel even worse than it did before.8 Our code can be messier, it was potentially written for someone—or something—else, and our best tools for fixing it are often “yelling at it” and “yelling at it again” and “yelling at it IN ALL CAPS.”
And so, it is tempting. Tempting to look out at all the possible new features and side projects, and think, we run free, today.
I know a corporate lawyer. I saw her work recently. She bounces around between several Microsoft products—Word, Outlook, Outlook…Chat?—and a half-dozen specialized file storage and document versioning services. Her firm bills their clients more than $1,000 an hour for her time, which is dutifully kept by a bookkeeping utility that is constantly ticking away in the corner. The software is expansive, and…bad. I do not know how much time it has billed while she clicks through yet another stalled OAuth flow or waits for some decrepit VPNs to connect to the internet, but it is a lot.
It is tempting, if you are a professional software developer, to reimagine how this could be better. Rebuild it from the ground up. Make it AI native. Reimagine an entirely new suite of law firm software. Reimagine an entirely new law firm.
And why not? Think about how much money a law firm has to spend to make their lawyers more productive.9 Think about how much more they could make if their software didn’t regularly ignite a corporate HP laptop—and, as importantly, its billing clock—on fire. Microsoft is making tons of money because its army of engineers in Redmond built a premium product for desktop computers and private intranets. It is a new world, and we all now have our own armies—a Zerg rush against their overpriced Protoss.10 Go forth and conquer. Or at least pitch it, and raise a few hundred million dollars along the way.
It’s a generational moment, they say. Do not simply make people enjoy their jobs again, they say; question if they should exist at all. And building with AI, they say, feels like working with magic.
But what is magic, anyway?
Sometimes, it’s a clever deception. The trick works because the magician found a solution through a complicated maze that the rest didn’t see. But often, according to Teller of Penn & Teller, “magic is just someone spending more time on something than anyone else might reasonably expect.” Even if you knew how they did it, it would still be unbelievable—not because you can’t see the maze, but because you can’t believe that’s how they got through it.
He really did unshuffle those cards perfectly. He really did practice that sleight of hand so many times that he flipped every card over, one at a time, directly in front of you, while you were a foot away and trying to catch him doing it. That’s the difference between a parlor trick and magic—not the stunt, but the unimaginable grind that makes it possible.
The same can be true for many things—even software. But where does that feeling—that sense of magic, that strange delight—come from? Does it come from an endless suite of features and a delightfully unified enterprise billing system? Or does it come from someone putting as much care into building it as some people put into how they deal a deck of cards?
It has become cliché to fret about AI-generated software, and to debate how important technical skills are in 2026 and beyond. I am not enough of an engineer to pick a side in that fight; I barely even know what a class is, much less how separate their concerns should be.
But I’ve used enough software to know what it feels like when something works unexpectedly well. I’ve spent enough time playing with a few weird ideas to know that tools like Claude Code can chew through your imagination nearly as fast as you can dream it up. I’ve felt the temptation to perpetually find new boundaries, or wipe the canvas clean. And I’ve seen how none of what gets built feels like magic.
AI gives software developers—and anyone creating things, for that matter—a relentless workforce that is uncannily good at tearing through new frontiers. It can also help us with our maintenance tasks and lonely bits of tedium too. But those, we still have to find them ourselves. We have to point them out, and direct it; cajole it; yell at it in all caps. We have to care enough to sand down the edges, even if the sander speaks English. We have to be diligent enough to fix every bug. We have to work on it past the point of it being fun. Because for something to be better than people believe it could be, we still have to spend more time on it than anyone would reasonably expect—even, often, ourselves.
I mean this term loosely. “Developer” is often used interchangeably with “engineer;” here, I mean anyone whose employment is tied to developing software, including designers, product managers, or someone pretending to be any of them.
I know a city planner at the Metropolitan Transport Authority in New York City. He once told me that they periodically hold public hearings to collect feedback on bus routes. Most of the feedback, he said, was, “the bus should stop closer to my house and closer to my job.” So it goes for software.
I know a salesman at a linen manufacturing company. “I’m [using Claude Code to build] a little bot to do everything other than sell—looking for leadership changes at health systems, budget announcements, or any sort of savings initiatives,” he said. “If I can get it right, I’ll never build another customer biz review, mark it complete in Salesforce, or update a flight plan. Just proof it and present what Claude built me to the customer so they buy my machines.”
Though I understand this feeling, I don’t believe it’s true, in part because so many personal apps seem like digital versions of a dot journal. I’m sure a few work for a few people, but most of it feels like a productivity placebo.
At least, this is what I’m told by people who know how to turn when they ski.
That was the whole prompt: “i want to write an arbitrage bot on polymarket.”
That viral Google tweet includes a second tweet that says “build something complex from scratch.” That’s the tension—if AI is a car that can drive 1,000 miles per hour on an open road, you start to feel awfully claustrophobic driving around in the city.
Or how much money you could make as a law firm.

The magic analogy works really well here. That bit about how Teller spent unimaginable hours perfecting tricks feels spot on when thinking about software polish. I've noticed the same tension where AI lets me prototype super fast but then I end up spending twice as long figuring out why somthing breaks in edge cases. The whole "cajole it and yell at it in all caps" part made me laugh becuase it's so accurate.
Liked this article and magic comparison, really thoughtful piece.