Things I run for myself, not shipped products. They earn their
place by carrying the same operating discipline as the published
work — and they're where most of the load testing of that
discipline actually happens.
Continuous-research pipeline always-on
// Python · forked from an academic-paper agent and rebuilt for tech/industry research · writes interlinked Obsidian wiki pages instead of LaTeX.
A 12-stage pipeline organised in four phases — Scout
(parse a topic into 5–8 sub-questions and search queries),
Gather (hit six source backends across web and
academic databases, dedupe, fetch, LLM-screen for relevance,
produce knowledge cards), Analyze (cluster
findings, build comparison tables, then re-read everything
through three deliberately distinct lenses: pragmatist
— what's usable today, contrarian — what are the risks
nobody is talking about, builder — what could be
assembled on top), and Synthesize (outline,
draft, run a quality + slop-detection pass, revise, write to
the vault).
It runs on a schedule against a topic queue. Output is wiki
pages, not reports — every entity gets its own page with
backlinks, so a year of research compounds into a navigable
graph instead of an inbox of PDFs. The same vault feeds the
rule router behind bouncer,
so research findings can become routable rules without leaving
their original context. The corpus itself stays private.
Always-connected operating environment always-on
// two always-on machines + workstation + phone, mesh-VPN'd · no public ports · watchdogs feed a private chat bot · automatic recovery before anything pages.
The machines I work on are stitched together by an encrypted
mesh, not exposed to the public internet. From a phone I can
SSH into any of them, hit private web UIs (vault browser,
session browser, dashboards, local LLM frontend), and watch
services without opening a single port to the world. Same
access from a laptop on a coffee-shop network. The discipline
this enforces: no service ever needs a public hostname to be
useful, which removes a whole class of attack surface and
keeps the threat model honest.
Underneath that there's a layered watchdog stack — heartbeat
logger (one-minute ring buffer for post-mortems), connectivity
watchdog (link / gateway / internet / mesh), system health
(disk, critical services, thermal), index-freshness watchdog
(catches stale background jobs), filesystem-event watcher that
reloads the rule router the moment a rule file changes locally
or arrives via sync from another machine. Failures recover
automatically where they can; what can't be auto-fixed pages
me on a private chat bot with the diagnostic already attached.
Backups are timer-driven with jitter and persistence, so a
missed window fires on next boot rather than going silent.
- Boot notify — every reboot pings the bot, so I know unattended hardware came back up.
- Belt-and-braces reloads — primary path is the inotify watcher; a 15-minute cron does an idempotent re-poke in case the watcher dies.
- Logs-as-context — every watchdog writes a self-truncating log, which is exactly the surface a future agent will read when something needs explaining.
- No-secrets-in-repos — credentials live in mode 0600 root-owned files on the box that needs them, never in git.
None of this is a product; it's the substrate the products
grow on. It's also the reason I trust agents to do
long-running autonomous work — the box is observable, the
failure modes are caught, and the recovery is automatic.
Local-LLM lane privacy + cost
// integrated GPU on a small home server · GGUF runtime · web frontend on the private mesh.
A local-inference lane sits next to the cloud-frontier lane.
Small dense models capped around 9B for fast
general-purpose work; larger models only when they're
Mixture-of-Experts with a small active
expert per token (so a 30B-class model with a 3–4B active
expert runs comfortably on integrated graphics, while a dense
30B would not). I don't try to match frontier-model quality
locally — that's the wrong target.
What it's actually for: privacy lane for
anything I'd rather not send to a third-party API
(vault-capture summarisation, draft passes over personal
notes, peer-review of plans I haven't published yet);
cost-zero secondary opinion when one model's
answer needs sanity-checking but a second cloud round-trip
isn't worth it; offline fallback for short
internet outages. The discipline: local inference is a
fallback and a privacy lane, not a replacement for
frontier models on hard reasoning. Routing the right task to
the right engine is part of the dispatcher role from
the essay;
this is that role made physical.