In 2016 I was a pretty okay software developer working on my own startup started in 2012. Around this time LSPs and other ‘smart’ editor features started gaining popularity. I switched from Sublime Text to VS Code to take advantage.
After practically every keystroke your editor suddenly had “helpful feedback” for you: that variable doesn’t exist, mismatched parentheses!, here are the arguments this function takes, oh also a whole snippet of docs for the function, and did you know that Mark last changed this line 3 days ago? A bunch of tools (including persistent processes) running on your machine (per language) that your editor now talks to constantly.
I'm not done typing yet, man!
I'd like to see the code I'm editing.
This was “intellisense” and autocomplete taken to a new extreme. You don’t need to learn any library or remember any API anymore, your editor will bombard you with all necessary info. Don’t burden yourself.
I like to learn how to do things, though. Eventually I turned this all off, and shortly after found my way back to Sublime. Back to good ol’ Ctags.
10 years later…
So here we are again. Now, instead of a noisy thing in your editor acting like you cant remember anything about your codebase, you don’t even need an editor. You just tell the chat bot to do your work for you. And it works, unfortunately. Yes, it works. Any halfway decent software engineer can easily have a 15 minute discussion with the clanker and then tell it “go” – it will do what you asked, and largely correctly.
This is so much worse than LSPs, obviously, but it reminds me of the feeling I had back then. Why should I remember all the tailwindcss classes or whatever, when the LSP will helpfully fuzzyfind them for me as I type? Why should I even know what tailwindcss is or whether it’s being used at all, when the clanker will simply make the site look exactly how I asked?
Well, there is a very good reason –
If you’ve been slopping at work (and/or at home), try this: pick a toy project (something classic like a todo list or a twitter clone), turn off your wifi, and try to build it with your favourite stack.
Terrible, right? Demoralising. Where to even begin?
Ok ok, starting from scratch is pretty cognitively demanding. How about picking up one of those sloprojects you’ve been working on on the side. Think of a little improvement you could make. Try to make that happen, and realise in horror that you probably don’t even know how to run the thing!
The magicalhack guide to unsloppening
It’s been about 10 months for me, like many people, doing this. I’ve got a whole new section in my dotfiles with ‘skills’ and plugins and various junk to try and get the clanker to stop yapping, prevent it from reading sensitive files, give it access to services I can already use my own eyes to look at, and to teach it how to do various things I already know how to do myself.
It seems like everyone at work and on YouTube have elaborate personal setups as well, and their own model preferences and harness tweaks and on and on.
The thing is that you can still be productive without outsourcing all your coding to the clankers. The rate of code output, barring the occasional gnarly debugging, was never really the big bottleneck anyway. It was the thinking. The problem is that as you accumulate slop code in a project, you have to delegate more and more of that thinking, because you no longer have any idea what’s happening in the codebase. If you actually write the code yourself, you can continue to have a clue and your thinking time will feel productive again.

How to get out of the hole, if you’re in it? A few suggestions:
- Cancel any personal clanker plans. Can’t stress this one enough.
- Take inventory of any sloprojects you have. Will you still work on them without a clanker? If not, archive.
- Move any real projects to Codeberg. They have a helpful policy.
What about work though? It’s gonna be harder, probably. Some people are trying it, but these days it’s not always possible to get away with it.
- Write your own commit messages and PR descriptions. You’ll find you… well, can’t, probably. So,
- Limit your conversations with the clanker to the investigation/prep phase only. Once you know what needs doing, you do it, and suddenly you can write the commit message again.
- While you’re at it, don’t use it to write anything else for you such as slack messages or emails. Everyone hates reading slop messages.

And then what?
Nothing, really, you just use your brain again. To be honest, I think there is a reckoning coming on this. Everyone complains about review fatigue, everyone complains about overly verbose generated code and writing. Soon enough we’ll see a correction.