LLMs gave me back the joy of programming

30 years ago, programming was fun. Then the size and scope of projects, and getting to value, became more important and displaced the fun. But now, starting projects and getting quick outcomes is essentially free.

When I was a student, programming was fun and worthwhile. I’d already been doing it for 10 years, I was daily-driving Linux, and websites mostly had a lot of HTML instead of SPAs. Scripting gave me control over my world: if I wanted to (say) find and download a bunch of links of a website, or compute some stats about a file from an open dataset, or give my window manager a badass theme, I could just do those things by coding.

I’ve spent most of my career since then trying to encourage non-programmers to do a bit of that. The skills have been getting easier to learn, and more of people’s work is done online.

But in my heart, I stopped feeling that joy and fun years ago. Part of it was the transition from junior to senior developer, and part of it was the experience of being a solo dev making commercial apps. Being responsible for scoping and delivering real products end-to-end made me look at software with an accountant’s mindset. All the little side things in a project — analytics, licensing, marketing, build systems, test frameworks, user testing & collecting feedback — really add up, and it made every idea seem more expensive. And outside, the landscape was becoming more hostile. Websites are harder to interface with and automate now. Any job you might do starts with investigating a bunch of libraries or frameworks that you might start from. All this contributed to a feeling like burnout: whatever project I thought of, I immediately felt like it was too big to be worth starting.

Fast forward to early 2026. I’ve been keeping an eye on LLM-based coding assistants. I’ve used them at work but only for very basic jobs, and I’ve seen very low-quality code generated by others. But suddenly everyone online is talking about Claude Code, how clever it is, and how it can one-shot a whole website or product. I decide to give it a try on something I’ve wanted to write for years: a VS Code extension for editing LilyPond files. I’ve had the empty repo sitting on my disk for months because I can’t motivate myself to start reading the VS Code docs: like many projects, it feels like the hump before getting to something I could actually use is huge.

I prompt it to generate the skeleton of the plugin: it does it, including a smoke test and debug actions that let me run it with a single keypress. I just ask it to add syntax highlighting, expecting poor results — LilyPond is fairly obscure, and I’d had to disable GitHub Copilot autocompletions in .ly files because it didn’t understand the language at all. To my surprise, it gives me a plausible but basic syntax file in one go, without asking any further questions. I review it and change the structure (by hand) a few times. I start reading the documentation for the syntax format, just enough to understand what Claude has done and what’s possible.

I got it to a state where it was worthwhile to use it for real (i.e. to make music) in a single weekend. Now I only use it; I never open Frescobaldi (which I was using before). I’m not really “vibe-coding” it in the narrowest sense: I’m still making a lot of the code changes myself, and I routinely edit Claude’s changes (or get it to edit them itself) to simplify, or just adjust the architecture to suit my idea of how it should be. It’s not super complex and I could have written it all myself: but I didn’t, and possibly I never would have got around to it.

That same energy is invigorating my team at work. I lead a team working on a legacy codebase that was previously developed by short-term contractors, so it has a lot of laziness: undocumented code, outdated dependencies, perfunctory tests, and architecture that wasn’t refactored when the requirements changed. For the last two years, I’ve been trying to encourage my team to write code documentation, in both new code and existing functions/components when they touch them, mostly to no effect. Most tech debt fixes feel overwhelmingly expensive, and the general feeling is that we can’t get enough time from our product owner to do that work.

I spent a day (off and on between meetings) getting Codex to generate jsdocs in the style I like for every top-level symbol in 150 existing files. I reviewed them all for helpfulness and factual accuracy: it had even (unbidden) corrected some existing commments that were wrong. I’ve shown that we can now just do the chores that need doing, because they’re cheap enough that we don’t have to justify the cost. (And in any case, it’s now a lot easier to justify investments in tooling and architecture as making the codebase “AI-ready”.) People are coming to meetings saying things like, “I got Codex to try the React upgrade yesterday just to see how much of a problem it would be.”

I’ve heard a lot of programmers online complaining, “Oh, it does all the coding for me? But that’s the fun part!” And to be honest, even though I’ve grown to more value the outcome of the software, I still enjoy the fiddly bits of coding. But what those complainers aren’t letting themselves find out is that coding assistants aren’t taking away the fun part from you: they only do what they’re told, and that gives you the power to delegate whichever parts you don’t like. I hate setting up new projects from scratch, so I just don’t do it any more: I delegate that step to Claude, who is quicker than me anyway, and I can jump straight to the part I like. All those side things I was complaining about don’t “really add up” any more: they’re almost free.

AI coding assistants have given me back the joy of programming in two ways:

  1. They’ve relieved me of the burden of the costly chores that make a project usable for real
  2. They’ve made learning a new framework or tool something that I choose when to do, not something I’m forced into at at the start.

Both of these have turned my perception of a software project from a series of liablities and costs, back to a space of possibilities and opportunities that are fun and worthwhile to explore. Getting to something valuable — whether in the commercial sense or just useful for something I want to do — is just as fun as making a little light come on or a pretty graphic was, back in my student days. At work, we’re giving ourselves permission to think bigger, to take on the tasks that were too big before. In the rest of my life, it’s giving me permission to just try stuff and not worry about the chores or the scope.