About

Infrastructure & agent systems for teams that outgrew the defaults.

I build self-hosted platforms and AI agent infrastructure — and the APIs that agents consume. Then I make them boring to operate: one-command deploys, builds that fail closed, no human on watch.

Five years total: two years shipping backend APIs at a Swedish consulting firm, then three running self-hosted production infrastructure — bare-metal Kubernetes, NixOS, and agent workloads.

Based in Sweden. Remote, worldwide. Timezones are a scheduling problem, not a hiring one.

What I do: senior infrastructure contracts, agent system architecture, platform engineering.


What I build

Agent infrastructure that fails safe
I build permission models for AI agents as a build-time proof instead of a runtime habit: capabilities to scopes to profiles in home-manager, and nixos-rebuild fails naming an unknown capability before anything runs. No dialog box at runtime, no "allow this once." Adding a capability is a diff, not a checkbox — the friction is deliberate.
Self-hosted platforms on actual hardware
I run a Nix build farm and a self-hosted production estate on mini-PCs. Three nodes of HA Kubernetes through August, one since September: the cluster passed a node-loss drill, and I cut two nodes anyway once the workload that justified etcd quorum was decommissioned and the power bill was not. Both are powered off rather than wiped, so the reversal is a power-on.
Data APIs from messy sources
JobFilter.ai started as a hosted career platform; four months in, I deleted 66,000 lines of it and kept the API: structured JSON only, source attribution, tokens scoped to jobs:read. In September I switched the hosted service off too — no external consumer had arrived, and the part worth keeping was the judgment layer, not the deployment. Sometimes the right infrastructure decision is what not to build.
Static hosting where ownership is a key
RentFree.site runs one Site per tenant: deploys are git push over SSH, there is no signup form, and the SSH key is the ownership. Lose it and the Site is orphaned; deleting is one irreversible SSH command that takes the data with it.

How I work


Get in touch

Email: max@ronner.dev
GitHub: maxronner · Codeberg: maxronner

Agent infrastructure, or a self-hosted system that keeps breaking: send the repo, or the incident that keeps repeating. Describe the failure mode, not the stack — the first reply is a written read of the real system. Address above.