Menu
← Home Self-taught · 10 years
orochibraru’s avatar

Who’s writing
all this.

A self-taught engineer, ten years in, who keeps ending up writing the tool instead of paying for it.

The name

The handle is a weeb name and the picture is a cartoon, and both are deliberate. I’d rather what I ship got judged than who shipped it. My legal name adds nothing to a Dockerfile. It also means none of this is a personal brand play. There’s no newsletter, no course, no consulting funnel at the end of the page.

And I’ll admit the irony is most of the appeal: infrastructure that people run in front of their actual data, signed off by a guy named after an anime snake. If that makes you check the source before you trust it, good. You should have done that anyway.

How this gets built

Ten years of writing software, none of it taught to me by an institution. Everything I know came from building something, breaking it, and reading the source of whatever I broke.

I use AI to write software. Not in the way that sentence has come to mean.

Think of it as a junior dev team. An intern on crack, if you prefer. It does the work I have already done a hundred times: the seventeenth CRUD endpoint, splitting a 900-line file into modules that make sense, chasing a linter through a rename, writing the fourth example of a pattern that’s already documented three times, converting a type definition I could type out myself but would resent. Chores. The parts of this job that are typing, not thinking.

The core logic is mine. The ideas are all mine. The architecture, the data model, the trade-offs, the awkward part in the middle that took three attempts: that’s me, and it’s the part I’d defend line by line at a whiteboard. An intern doesn’t get to decide what the product is.

What doesn’t ship is slop. If I can’t explain why a function exists, it doesn’t go in. Generated code gets read, cut down, and usually rewritten before it lands, same as a junior’s PR. The tool changed how fast I get through the boring 70%. It didn’t change who’s responsible for the other 30%, or for all of it when it breaks at 3am.

The part some of you will hate

I know how that paragraph lands. Some people will judge it, some will call the whole thing slop on principle without opening a single file, and a few will write off every project here over one sentence. That’s fine, genuinely. I’d rather say it plainly on my own site than have it treated as something I hid, and I’m not going to soften it in a README to keep a star.

So here is the trade-off, stated straight.

I work full time. I have other passions and no shortage of ways to spend an evening. So when I choose to put my own hours into something and then hand it over for nothing, those hours had better land somewhere that matters. Two hours splitting one file into four is not that. Neither is rewriting two hundred tests after a rename, or typing out the fourth variation of an example that already exists three times. That work is real and it has to happen. It is also worth none of my Saturday.

So it gets delegated, and what’s left is the part that actually needed a person: what the thing is, how it’s shaped, what it deliberately refuses to do, and every decision you could reasonably argue with me about. That’s where the evenings go. The alternative here isn’t a purer version of these projects. The alternative is that most of them don’t exist.

If that still bothers you, sit with the actual counterfactual for a second. Most of what is on this site would never have seen the light of day. The ideas were mine and they always were, and several of these started life as betas written entirely by hand that ran perfectly well on my own box. They were also nowhere near as polished, nowhere near as stable, and frankly not as pretty. They were the version you build for yourself and would never hand to a stranger.

If it comforts you: yes, this stuff would probably have made it out eventually. At some point. But carrying around the frustration of not having the time to build it, for the next five to ten years, is not much of a plan.

While I’m being clear about what this is for: it isn’t recognition, and it certainly isn’t approval. I write this software because I run this software. It sits on my hardware, I use it every day, and that alone is what justifies the hours and the AI credits it burns. Every project on this site would exist in exactly the same shape if nobody else ever cloned it.

Giving it away is a bonus, not the point. So if AI in the loop is a dealbreaker for you, that is genuinely fine: don’t use it. Too bad for you. I use it, it works, and it’s stable enough for everything I trust it with, in no small part thanks to test suites the same intern wrote. That’s good enough for me. If it turns out to be good enough for you too, then that’s fucking great.

Why all of it is free

Two answers. The boring one first: I don’t need the money. That day job pays well, and nothing on this site has to earn its keep. That matters more than it sounds. Software that doesn’t need revenue never needs to grow, convert, retain, or justify itself in somebody’s quarterly review. There is no tier to invent, because there is no number anyone is asking me to move.

The second answer is that I’m picky. Annoyingly, unproductively picky. I notice the loading state that flashes, the setting that silently doesn’t persist, the modal that eats what you typed when you hit Escape, the empty state nobody designed. Most people see software. I see the seams.

That pickiness is most of why these projects exist at all. I used something, it annoyed me in the same exact spot for the fifth time, and at some point rewriting it became less painful than continuing to be annoyed by it. Every repo on the front page started as a grudge.

So I was already cynical about software. Then there’s the pricing page.

A pricing page is where the cynicism stops being funny and turns into actual anger, and it’s always the same story. You find a good tool. It’s free, or nearly, and it does one thing properly. You build a habit around it. You put your data in it. You recommend it to people. Eighteen months later there’s a funding round, and the feature you actually used has quietly moved one tier up. A year after that the tier is called Enterprise and the price is “Contact sales”, which isn’t a price, it’s a process for working out how much you can be made to pay.

Then it gets specific, and stupid. Per-seat pricing, for a homelab whose entire headcount is me. Usage limits on hardware I bought, running on electricity I pay for, sitting in a cupboard I already pay rent on. A monthly fee, forever, for software that was finished two years ago and has shipped nothing since but a redesign. Telemetry I didn’t agree to, so the thing I’m paying for can study me and sell what it learns. An alert when my own disk fills up, gated behind Pro (or worse, fucking Enterprise).

And the part that actually gets me: none of it is really about the money. I’d pay for good software. I have, plenty of times, gladly. What I won’t do is rent permission to use my own machine. That’s the line. The moment your subscription lapsing turns my drive read-only, my files aren’t mine and never were. That isn’t a product, it’s a hostage arrangement with a nice onboarding flow.

So: no pricing page. Not now, not at v2, not if one of these somehow takes off. There are no tiers, which means there is nothing to move behind one. No seats to count. No telemetry to phone home. Run it on the box in your closet and never speak to me. And if I get bored, or hit by a bus, the licence means you don’t need me. Fork it and carry on. That’s the whole point of giving it away instead of selling it.

Elsewhere