Can we still make software that sparks joy?

A diatribe in when I am greatly disappointed in my industry.

Vibe Coding

For the past few weeks I’ve done some "vibe coding" with Codex and Claude in my free time. As a lifelong software engineer my feelings on the results are, well, mixed.

LLMs definitely let me put together a prototype faster, which is great for iterating on ideas quickly. The generated code is definitely an improvement over state of the art a year ago; generally straight forward if rather verbose. For UI work I need to hand hold the tools, but that’s probably okay. I’d do the same with a junior engineer. What I’m contributing is my experience designing interfaces. I can tell the LLM to “move this button over here”, “make this label bigger”, and “fix the scrolling of this table on that side”. These are the same things I’d say to a junior engineer and I get the results much faster; definitely a win in these areas. And I’ve a blast working on projects that have been on the back burner for years. Whipping up my personal cloud based iTunes in a matter of hours. I won’t deny it’s been fun. But...

Aye there’s the rub. I can only be effective at vibe coding because I have these decades of experience. The LLM can easily code itself into a hole. Last week I went through a few rounds of the AI fixing horizontal scrolling by breaking vertical scrolling, then fixing the vertical and breaking horizontal again. After 30 minutes of in this loop I had to fix it by manually rewriting the markup to properly use CSS Grids. To be fair, plenty of human engineers get stuck in this loop as well. Nested CSS scrolling is tricky and LLMs aren’t magic. They need experienced guidance to be effective. So who can provide that guidance?

The Decline of Software Quality

I am 50 now and wondering where my career goes next. For a while I was worried that AI would cut me short and force an early retirement. Now I realize AI tools will have the opposite effect. Engineers who know software at a deep level can coax these tools to do a better job. Now I worry about the juniors. If newcomers never get the experience of building software by hand then this will be the last generation of engineers with the ability to produce quality software. In the future we will prompt and get the results from AI but software itself will never get better. And if AI is trained on the code of today, then it will never get better either.

I also worry about the long term quality and viability of my industry, the commercial software industry. With AI slop a solo software developer can ship faster but never sell a single copy because their products get lost in the noise of the AI slop marketplace. This is not new, however. Video games have been taken over by slot machine mechanics. Free to play. Consumable in-app purchases. Harpoon the “whales” and let the rest of the players rot. Small useful utilities are slathered ads and tracking. Want to generate a QR code from a URL or make your own LOL cat meme image? Better come armed with the latest in popup blockers and antivirus tools.

Software on the Internet, which is virtually all software these days, has become completely user hostile. Even if it doesn't steal your data and shove ads in your face it is still ruled by algorithms which optimize for "engagement", and value rage bait over thinking and conversing. I didn’t get into this industry to make such crap.

Somewhere around the time of the pandemic I started to withdraw. I let my social media accounts atrophy and recently turned them private. I started focusing more on family and local issues rather than trying to change the world. I got into Computer Science as a wide-eyed youth because I saw the power of software to help people. To make the world a better place. That doesn't happen anymore. I have seen little come out of software in the past decade that meets the goal of improving the world. I would be perfectly happy with my iPhone 6, an old Macbook, and the Internet of the early 2010s.

Perhaps this was always the end state of my industry. In many or possibly even most cases, the quality of software does not matter. I’ve worked for many different startups and many Fortune 500 companies over my 30 years in the industry. Almost never did the success of the company depend on the quality of the software we produced. On the contrary, software has become worse. It has become disposable and user hostile. In a world where profits come from engagement the software must be exactly good enough to not drive users away too quickly, and not a whit more.

AI slop accelerates this trend but was not the cause of it. Now software can be made even cheaper and faster and of ever lower quality. The flat-pak fiberboard furniture of computation. Efficiency doesn’t matter if the hardware gets faster and the goal is just to suck as much money as possible out of people’s wallets before they throw the app away.

Software That Sparks Joy

The enshitification of software is a long term trend. My choices and actions will not change that trend. However, I can choose how I respond to it. So this is what I’m going to do.

I like my day job working on financial software. It’s one of the few areas where quality really does matter because bad financial software that loses customer funds doesn’t last very long. In all of my other projects I am going to focus on one thing: software that sparks joy.

Many see software as disposable. And perhaps it is. But I still want to make quality software that brings concrete happiness and value to end users. Not to the giant software platforms. Not to social media. Not to the latest AI VC backed company. Software made by me, a human, for someone else, another human, to use.

About 20 years ago I found an MacOS application that lets you build a comic book out of your photos called Comic Life (hat tip to reader Daniel W for reminding me of the name). My niece and nephew enjoyed designing and printing their little adventures with speech bubbles and halftone image filters. This is software that sparked joy, even if only for a few people. I want to make software like that again.

Will I use AI to help me write my software? In some areas, sure. I wouldn’t build furniture without power tools. I’m not going to put together a React CRUD app without using the tools that let me do it the fastest; but I’m also not using these tools to make worse software. I want to use AI to free up my human attention on the parts that matter the most. The user experience. The efficiency. The quality. The innovation. The artistic intention. That’s where (I hope) I can make a difference.

I have built a few free webapps like this. Box Builder makes a box and lid from your specifications, immediately downloaded as a 3D printable STL file. The TextEffect generator does what it says on the tin, generates a text effect and gives you the CSS and downloadable PNG of the glyphs. Meem Makr is my first vibe coded app. Drag your cat photo in, get a funny lolcat out.

I'm putting all of these on apps.josh.earth until I figure out a better place for them.

Am I wrong? Am I just a grumpy old man yelling at the kids to get off my carefully coded lawn? Does it even matter? This is what I do. I make software. And I want to make it for humans because I care about humans. Sometimes, they are kinda neat.

Talk to me about it on Twitter

Posted March 19th, 2026

Tagged: gui ai rant