Well, I’m the only maintainer for my project, so ha! (I only have myself to blame.)
Programmer Humor
Welcome to Programmer Humor!
This is a place where you can post jokes, memes, humor, etc. related to programming!
For sharing awful code theres also Programming Horror.
Rules
- Keep content in english
- No advertisements
- Posts must be related to programming or programmer topics

That just means my boss will have to do all the work. Ha, what an idiot. Wait… aw. 🙁
Those are amateur problems, real problems start when you are unable to run it or you don't have source code. Bonus, it's written in the in house language made by developer who left job or died - true story.
This was me when I started working with my current full time job.
What a nightmare.
The team lead has spend the last two months writing a permissions library that nobody understands how to use or debug. He wrote it with Cthulhu at his side. Soon not even Cthulhu will understand it.
Yeah, that was a fun job... at least the database tended to have some descriptive column names. They never lined up with the entity they mapped to, but it was better than nothing.
JavaScript developer in a strongly typed language decoding json into dictionaries with single letter keys.
Fork the repo.
Ask an LLM to rename all the variables and add comments and docstrings. Give it your style guide (assuming you have one).
Ask another LLM to check their work.
Done.
Disclaimer: I'm not a programmer, I'm a network engineer who dabbles in automation and scripting. But it seems to me that grunt work like this is what LLMs are really good for.
Also I only use short variable names inside of loops (for i in iterable...). Is that not how it should be done?
i and I are acceptable in small loops. But it depends a lot on the language used. If you're in C or bash maybe it's fine. But if you're in a higher level language like C# you usually have built on functions for iterating over something.
For example you have a list of movies you want to get the rating from, instead of doing
for (i = 0; i < movies.length; i++)
var movie = movies[i]
....
Its often more readable to do
movies.forEach { movie ->
var rating = movie.rating
....
}
Also if you work with tables it can be very helpful to name your iteration variables as row and column.
It's all about making it readable, understandable, and correct. There's no point having comments if you forget to update them when you change the code. And you better make sure the AI comments on the 2000 lines of three letter variables is correct!
Yeah I script more than anything...python, bash, powershell, etc.
Only terrible code I inherit is the stuff I wrote >=3 months ago. I'll keep saying that three months from now, too.
In Go, the recommended convention for variable name length is to be proportional to their scope. It is common to use one or few letters long variables if they are local to a few lines loop or a short function.