
I’ve been writing software professionally since I was in high school. I’ve worked on almost every level that you might describe a software engineer being needed, and it’s time to admit something: almost all of it was terrible. Not terrible because I’m bad at my job or worked with bad people, but terrible because good software is almost impossible to make.
I have spent months of my life just trying to get to a decent login screen. I almost lost my mind trying to make something work in Safari. One time I was trying to figure out a glaring bug and accidentally deleted the production database using other software that I wrote.
The enormous complexity of doing anything truly right means that whatever good means is almost always off the table. Instead we’re stuck with continuous compromises, accumulated mistakes we don’t have time to fix, and job security knowing that however bad it is, it’s still better than the alternative.
There’s a lot of noise about how AI’s remarkable ability to write code means it’s an extinction event for software engineers. I think just the opposite - this is a Cambrian moment, where everyone who used to ask for features can now participate in the awkward process of making computers do things more directly. Things that were too small or too niche are suddenly fully-featured tools built by the domain experts who need them every day. It also means that for people like me, we’ve got incredible tools to do the things we’ve always wanted to do.
What if more software was awesome? It’d require engineers like me to have more time to continuously rethink as needs change, rather than just compromise in order to meet deadlines. This trade is historically untenable for executives — we make money by shipping, not by rebuilding things after all. AI is the only way through this logjam.
When I can mass-produce the compromises in minutes instead of months, I get to spend my actual brain on the choices that separate software people tolerate from software people love — the animations that feel right instead of just functioning, the error message that tells you what actually happened, the thing that just works on the first try because someone cared enough to think through all the ways it wouldn’t.
These choices are how you build great experiences for people. Luxury software will be made with metal, not cheap plastic parts. I can’t wait.