I’ve been having Clankers churn out code as a background task while I think about more important topics, like Mesopotamian mythology.
The code pile is large enough that I thought it might be fun to show it off.
Caveats, which seem obvious to me, but I figure I have to say it.
Anyway. The application projects are built on top of the infrastructure projects. We’ll go through in that order.
Everyone knows the best way to eat at a Sichuan restaurant is: pre-prepare an order maximizing variety and delight while taking into account the dietary preferences of everyone involved; swing by the library to print it out; and hand over it over to the server the second you sit down.
It’s not a lot of work. But now it’s less!
For attendees, Mala Systems remembers your dietary preferences, so you can say you’re coming with one click – it remembers that you need “high gluten fin fish medium sulfite only deadly soul allergy.”
For me, the organizer, it takes into account the restaurant’s menu, the preferences of the people who’re attending, and the history of orders from this restaurant (including notes on what people did and didn’t like), and crafts a new order.
Mala is the only part of the Clankosphere that uses LLMs at runtime: it uses one to parse a restaurant’s menu (restaurant websites are all different, and usually in some state of decay or collapse) its menu, and it uses one to craft the order.

Could it organize meals at other kinds of restaurants?
There’s no way to know.
I wanted it to look pretty, yet I have no design skills, so I used Claude Chat’s design skill to generate brand guidelines.
Legend has it that when popular Roman citizen Gaius Julius Cæsar led his legion across the river that marked the border into Italy and began the war to take over Rome, he said “Alea iacta est,” the die is cast.
That river was the Rubicon.
A quarter century ago, I did some New Year’s journaling and committed to becoming a novelist, referring to it, in that journal entry, as my Rubicon to cross. Since then I’ve been collecting my writing (flash fiction, short stories, notes including capture docs, exercises, garbage, the novel trilogy) in a directory repository called “rubicon.” As of today it’s 313 files and 1.87 million words.
Iacere is a web server to host and share my writing. It’s the infinitive of “iacta,” the word in the middle of “Alea iacta est,” as in to cast something, such as a die… or, in this case, a giant wad of fiction, across some sort of Rubicon.
Here are its brand guidelines.

My writing is in a custom format I invented, which is similar to Markdown, though I invented it before Markdown existed. The idea is that it lets me do the basic formatting and layout needed in fiction, but not much else; the limitation is a feature, as it makes it easy to write converters to turn it into any sensible format: HTML to read on a laptop or phone, ePub to read on a Kindle, or DOCX for publishers who for some reason use Microsoft products.
(You’ll recognize this as solving a problem no one has.)
The Iacere Content Management System serves rendered HTML versions of the 313+ rubicon writing pieces in a way that’s optimized to be read online or on a phone – I think it looks pretty nice – and I can grant individual access to individual stories.
(You’ll recognize this as solving another problem no one has. Access control is built into Google Docs; even 500 years ago, people could “grant access” by emailing around MS Word attachments.)
When I decided to move my blog off of Medium, I realized it could just be an extension of the Content Management System. The main differences are:
The same webserver serves both the Content Management System (jtr.name) and the Blog (blog.jtr.name).
There was a family get-together in early May where a bunch of distant cousins would be in the same room. “How are we related?” was going to come up a lot. I decided to add a file format and renderer for family trees, after I did some research and found that all kinds of weird limitations existed in all the public technology for doing that. (I figured I could also use it for family trees of fictional characters.)
I found a public format and extended it, built a renderer, and fed the Book of Genesis into it as a test.
That worked, so I threw everything I knew about my own family tree into a new file, had a couple phone calls to fill in more, and then left Post-Its next to the giant printout when the whole family was together, and picked up a bunch more of their improvements.
Pyroskepsis (“watching the FIRE”) is my finance glue code. It’s by far the largest codebase, three times the size of the second biggest (Mala), but most of it doesn’t have a UI or anything that would lead to compelling screenshots for our tour.
Most of it is command-line tools and docker containers that collect data from one system, transform it, and pump it into spreadsheets or budgeting software or dashboards.
There is one tool with a terminal-based UI that I use every weekday. I trade options on a brokerage called TastyTrade.
On a typical day, I place 5 to 20 orders (opening, closing, and adjusting positions). Every dollar matters and markets move constantly, so I would place a limit order hoping for a favorable price, wait a little bit, adjust the price to be a little less favorable for me (and thus more favorable for a counterparty), and repeat that loop until a counterparty accepts.
This was tedious. Some brokerages have built-in “price discovery” algorithms that will do this for you, but TastyTrade doesn’t. So I wrote the Jiggler, which picks up open orders and slowly walks the price of each until it executes.
This is mostly to automate away something dull, but it is more patient than I would be if I were doing it manually, so it gets me better execution prices.
Please note that it’s not making big picture decisions, just automating the execution of decisions I’ve already made.
But it’s growing more and more features to automate the daily trading and get better data about the process.
You know how you go over to your special lady friend’s place multiple times every week, and every time, when you’re a block away, you pull out your phone and text “I draw nigh,” so she’ll know you draw nigh?
Nighannouncer registers a geofence 200m around my special lady friend’s condo’s latitude/longitude, and when I cross into that ring, it wakes up.
Obviously, firing a text message is not a decision to be made lightly. A human must be in the loop. So when Nighannouncer detects it’s entered the ring, it sends a notification to my phone and smartwatch asking if I want to tell her that I’m drawing nigh.
The utility of this app has decreased now that she’s moved in.
Mala and Iacere are designed to look good and be usable on mobile, but they’re not apps. Nighannouncer was the first mobile app I wrote, and it’s in Kotlin, a programming language I don’t know. But it’s a lot easier to edit code than to write it from scratch.
The projects are set up so their common functions behave the same way. This means a bunch of little goo that I extracted out has to run in a central cross-project place.
For example, when I push changes to any project’s repo, it triggers a build and updates the running jobs/services; there’s a notifier job that sends me emails to tell me when builds succeed or fail, and it’s in Ocularium.
It also holds all the monitoring data and alerts and dashboards.

It’s nice for a long-running agent to keep working even when I pack up my laptop to move from one location to another. Also, sometimes you just want to check in, or make some little change, while you’re on the toilet… I mean… on the go!
All the Clankers are primarily terminal-based, so they’re easy to run remotely in a terminal multiplexer.
I do most of my coding on a GCE Spot VM, which is like a normal VM except it’s a whole lot cheaper because it could shut down at any moment. This makes it a lot more exciting, but agent workflows are easy to resume after a reboot.
The VM is cheaper when it’s off or suspended, so I have it automatically suspend when it’s been idle (it takes a few seconds to wake it back up), and automatically turn off late at night (it takes a few minutes to wake back up)… and wrote an app so I can suspend or resume or stop or start it from my phone.

(Those are mostly real runes from the Elder Futhark, but they spell nonsense that looks to me like “E AMOUW G”. That backwards “K” at the bottom is, I think, nothing.)
All of this runs on Google Cloud (with some tiny exceptions, e.g. Nighannouncer doesn’t have a server, it’s just a mobile app). All the configuration to build and configure the cloud resources (databases, build triggers, storage buckets, VMs, etc.) are stored in the Laniakea repo, which has a corresponding Cloud project in which to store state.
The infrastructure projects have brand guidelines too.
I just saw a pull quote from this article:
LLMs impress the writers who do not want to write, the coders who don’t want to code, the researchers who don’t want to research, and the lawyers that don’t want to actually understand case law.
Which is not wrong, and I’m sympathetic to the broader point. But allow me to get defensive for a moment: those cases are different.
Writing is an art; it makes joy in the world. (But even so, some writing is transactional.)
Coding… can be an art, and I derived a lot of value in doing it by hand for decades. But while there’s the occasional artistic little Duff’s Device, so much more of it is no longer valuable or instructive. My life would not be better if I could get the Cascading Stylesheet syntax for a deeply nested two-dimensionally aligned spacer correct on the first try.
And honestly I’m not a coder anymore. I’m a person who knows a lot about how code should be structured and how it should operate and evolve over time, but it’s not the purpose of my life. I just like having it solve problems for me.
I don’t know, dawg. I’m just having fun making weird little software perfectly tailored to my needs.
We’re entering an era where code is easy to produce. I worry what that’s going to look like in business; the Clankers have not shown good taste in terms of habits for sustainable or maintainable code, and sometimes you have to take a heavy hand to keep them from writing Jenga towers of boilerplate, or tests that automatically disable themselves, or features that silently degrade. At least half of my sessions have been quality control, not building. I always try to leave the guardrails stronger than before, and although it’s a little frustrating, it seems to be working.
I’m sure other people are building their own weird little Clankospheres and I’m really curious to see what they’re doing.