POTLOODGUM, home

I have fifteen years of programming experience. I've built plenty of applications by hand, line by line. For the last few months I haven't written a single line myself. Claude writes it, I decide what it should be.

I don't know exactly how I feel about that, so this is me working it out in public. It's not an argument that I'm right. It's an argument that the question is worth taking seriously, in both directions.

A note on scope. This is about using LLMs for coding and UX, and only that. I'm not writing about AI-generated images, music, text or video, and I'm not defending any of it. Slop exists with AI, plenty of it, and I have strong feelings about much of what gets generated.

What I made

The clearest example is Todododo, a todo app with exactly one user. It knows where my home is, how long my drum lesson takes by bike, which recipes I actually cook and that I get overwhelmed by long lists. A product team would never ship it. No market would ask for it. It exists because a person with a very specific life wanted a tool that fits that life, me.

That's the thing I think is genuinely new. Software used to be too expensive to make for one person. You wrote for the thousand people who had roughly the same problem, and everyone else made do. When a working prototype takes an afternoon instead of a month, the maths flips. The tiny, local, odd problem becomes worth solving: the app for one classroom, one street, one family, one disability, one broken workflow.

The same goes for hardware. An old laptop that no manufacturer supports any more can be talked into a kiosk, a media box or a dashboard, by someone who would never have had the patience to read the driver documentation. E-waste is a design problem as much as a materials problem, and a lot of what ends up in a drawer is only waiting for someone to get over the first ten hours of friction.

This seems awesome to me.

All the open source knowledge, in one conversation

What I find hard to explain to people who haven't tried it is the sheer reach. I used to know a handful of libraries well and everything else a little. Now I can say what I want and get something built on decades of other people's work: parsers, encryption, routing, calendar maths, map data. All of it open source, all of it shared in good faith by people who wrote it for free.

That's a kind of power I don't take lightly. It also means I owe those people something and I want to support them somehow. I don’t want to be responsible for the downfall of open source.

The part I'm uneasy about

I'm not going to write a celebration without the bill attached.

Energy and water. These models run in datacenters that draw a lot of electricity and use a lot of water for cooling. When I ask for a feature, something somewhere spins up, and I don't see it. I can tell myself that one request is small, and it probably is. But a convenience that's invisible is also a convenience that's easy to overuse, and I'd rather ask myself whether a thing needs building than build it because it costs me nothing. I want to be honest that I don't know my own footprint here, but it can’t be good.

Copyright. The models learned from enormous amounts of material, including code, much of it made by people who were never asked and never paid. The open source code I benefit from was shared under licenses. I teach design students about credit and authorship. It would be strange to teach that and shrug at this. I haven't resolved it. But I try to only work with the open source stuff that I know.

Big tech. I don't like being at the mercy of a handful of companies. I've spent my career preferring tools I could open up, understand and keep running. A model I rent by the month, behind a login, that can change or vanish, is close to the opposite. The irony is that this same tool is what lets me build things that belong only to me: software that runs on my own server, with my own data, that no company can switch off. I use a dependency to escape dependencies, and I can't claim the tension is neat.

Slop, and the slippery slope

Slop isn't unique to code, and it isn't unique to AI. But there is a coding and UX version of it, and I can feel it in myself. It's very easy to say yes to whatever comes back. The code runs, the screen looks right, and I move on without having understood any of it. That's the slippery slope: not one big decision to stop caring, just a hundred small ones to not look closely. Eventually you own a thing you couldn't repair.

"But you didn't make it"

I've always been dependent. I didn't make HTTP. I didn't make CSS or JavaScript. I didn't make the browser, the operating system, the web server, the database or the framework I'd have used by hand. For fifteen years my work stood on top of other people's work, and nobody called that cheating.

I always think of the story of angry farmers, biking past another farmers pasture and complaining that it wasn’t plowed by hand, if you don’t do it with manual labour you are not a real farmer. And being a full automated bio industry is another thing, but using a tractor to plow your fields is definitely not frowned upon anymore.

I've always worked at one level of abstraction and trusted the layers underneath. What's changed is the level I work at. I used to say how. Now I mostly say what and why.

Soulless?

People say software made this way is soulless. I understand why. A lot of what's produced with these tools is generic: the same layout, the same copy, the same gradient. That's real.

I will always try to find the soul, be it in the illustrations, photographs, or other decisions and interactions that give it meaning for humans. Fully automating and efficiently is not my goal and it never aligns with my values.

How proud should I be?

I honestly don't know.

I never enjoyed the manual part of coding. Not once, in fifteen years. I loved the problem, the design, the moment something worked for a person. The typing was the toll I paid to get there. So there's a real relief in not paying it, and I'd be lying if I said I miss it.

And then there's a smaller, odder feeling. When I built things by hand I knew what I'd earned. Now the thing works, and I can't say how much of it is mine. Is it pride if the hard part wasn't hard? Is it fraud if I'm proud anyway? I notice I want somebody else to tell me which it is, and that makes me suspicious.

Rouwen & bouwen

There's a Dutch pair of words that describes this better than anything I can come up with in English: rouwen & bouwen. Grieving and building. I'm doing both at the same time, in the same sessions, on the same day.

Building is the easy part to explain. Things get made that wouldn't exist otherwise, and they fit the person they're made for.

The grieving is harder to pin down. I said I never enjoyed the manual coding, and that's true. But fifteen years is a long time to be someone who can do a thing, and a craft is more than the parts of it you enjoy. It was how I understood a problem: by being slowly forced through every part of it. It was a skill I taught and a way of being good at something. Something is ending, and I'm still sorting out exactly what. Part of it is the craft. Part of it is the road I took, which I'm not sure my students will be able to take. Part of it is simply that the ground has moved under a profession I chose.

What surprises me is that the two feelings don't take turns. I can feel delight at something working and a quiet ache about how it got made, in the same minute. I've stopped trying to resolve that. I think the grief is a sign that the thing I'm leaving mattered to me, and the building is a sign that I'm not willing to stand still and just mourn it. If I only built, I'd be skipping something real. If I only grieved, I'd be ignoring what these tools make possible for people.

*A local LLM was used to transcribe my ramblings to text.