Garrett Macarthur: builds and runs production systems

Garrett Macarthur

I build and run production systems. Multi-tenant SaaS, integrations between things that were never meant to talk, and enough observability to know when they break. Gold Coast, Australia.

  • TypeScript
  • Next.js
  • Postgres
  • Laravel
  • Rust
  • Docker
  • AWS

Selected work

What it is

Open source self-hosted media server in Rust. One binary on hardware you already own, your movies and shows on every screen in the house. No cloud accounts, no ads, nothing to sell you.

What was hard

Self-hosted software has an installation problem, and it is not the people who read documentation. A container runtime, a compose file, a database to provision and a reverse proxy narrows the population who can run it to the technical, and each of them hits a different failure on a different distribution.

What I decided

One static binary, no runtime dependencies, no account anywhere, and no mechanism by which I could later charge for a feature you already have. Not a promise not to: no mechanism. Open source for the same reason, so the guarantee survives me.

What it cost

Remote access becomes the user's network problem, and with no analytics the roadmap runs on whatever people bother to report. in development · dog-fooded with developers and families · any server hardware or Docker · web, Android/Android TV, iOS/tvOS, Tizen/webOS

The Hub

education sector · client under NDA
What it is

Multi-tenant school CRM handling student enrolment and downstream account provisioning, with sync integrations to external providers. Education sector, supporting a very large user base.

What was hard

A six-day silent failure. An upstream provider changed their response format without notice; my endpoint accepted the unrecognised payload, found no enrolments, and returned success. Uptime monitoring stayed green the whole time, and the affected schools were raising it with the other provider rather than with me.

What I decided

A sync job that has stopped must not look like a sync job with nothing to sync. Schema validation at every external boundary, unrecognised responses fail loudly, and alerting on the absence of expected work rather than only on errors. Tests fail if the instrumentation is removed.

What it cost

Six days of undetected downtime and the credibility of every green dashboard until the boundary work landed. 6 days silent · 0 alerts fired

Formist Loom

formist.com.au
What it is

The agent delivery pipeline behind Formist's client and internal work, named for the weave. Frozen-plan governance, orchestrator, implementer and verifier tiers, deterministic test and lint gates ahead of any model review, PR-based asynchronous approval.

What was hard

The numbers I had been optimising against were wrong. Human wait time was being logged as model latency, so every tuning decision drawn from the old traces pointed in the wrong direction.

What I decided

Instrument first, then rebuild. Plans freeze before implementation, deterministic gates run ahead of any model review, and approval happens asynchronously in a pull request rather than blocking a run.

What it cost

A full rebuild of the pipeline. 96% of spend traced to context size, not model choice · 3 of every 5.5 hours was process, not work

Writing

Software that doesn't phone home Why Nightjar is one binary on hardware you already own, with no accounts, no cloud, and nothing to sell you. 2026-07-22 Don't optimise against numbers you didn't measure I asked an agent pipeline to analyse its own performance. The report was confident, detailed, and wrong in three places. 2026-05-09 Six days of nothing happening A sync endpoint that returned success while doing nothing, and why uptime monitoring was structurally incapable of catching it. 2025-10-14