Writing
Android, self-hosting, and the occasional personal reflection. 21 posts and counting.
tags
all posts
Jun 5, 2026 · 21:004 min
The Routine Changed. So Did My Mind.
A few weeks into waking up at 6AM, I have enough distance now to say something I couldn't before: this wasn't just a schedule change. It quietly changed how I think about my days.
Jun 3, 2026 · 22:0013 min
Continuous Content, Gated Code: A Release Process for This Site
This site deployed on every push to main — blog posts and half-finished features alike. I wanted the opposite for code: a feature ships only when I cut a release, while blogs keep publishing the moment they merge. Here's the GitLab pipeline that does both, and the things that broke building it.
May 31, 2026 · 10:0027 min
How Claude Built a 1,500-Entry Fingerprint Dictionary Using 153 Parallel Agents
A deep technical look at the multi-agent workflow that scraped the entire awesome-selfhosted dataset — nine runs, every architectural failure, exact agent counts and token numbers per run, and how it ended with Python bypassing agents entirely.
May 30, 2026 · 09:009 min
I Couldn't Make Sense of My Own Homelab. So I Built Orbiter.
I had Portainer running but it made figuring things out harder, not easier. And there was no single place to just click a link and open a service. I described the problem to Claude Code and it built me exactly what I needed.
May 25, 2026 · 09:005 min
I Was a 2AM Person. Here's How I Fixed That.
For over a decade, sleeping late was just how I was wired. Quiet nights, no interruptions, my own pace. Then life required 6AM, every day — and I had nothing to give. This is what I did about it, what actually worked, and what didn't.
May 23, 2026 · 09:0022 min
Nexus Part 2: Convention Plugins, AGP 9.x, and Six Things That Broke Before Writing a Feature
Before a single feature line goes in, the build system has to be right. This is what setting up Gradle convention plugins for a 16-module Android project looked like in 2026 — including every AGP 9.x breaking change that hit along the way.
May 21, 2026 · 22:0012 min
Polaris Under Pressure: Benchmarking a 13th Gen NUC as a Production API Server
I put the Nexus backend under four progressively harder k6 load tests — smoke, stress, spike, and soak — while watching every CPU cycle and megabyte on Polaris. 300 concurrent users, zero failures, 40% CPU headroom. Here's what a NUC can actually handle.
May 17, 2026 · 09:0011 min
I Asked AI to Challenge Me. It Wrote a 968-Line Android Assignment.
I asked Claude to design a senior-level Android engineering challenge for me — the kind that covers everything a production app actually needs. It delivered a 968-line spec. This is what it came up with, why the architecture decisions matter, and what the 10 hardest technical challenges look like before a single feature line is written.
May 16, 2026 · 09:005 min
Polaris Grew Up: From LLM Box to Personal Server
The last post ended with Polaris's role shifting to embeddings and batch work. What actually happened was more interesting — it became a proper personal server in a single afternoon. nginx, WireGuard, Docker, GitLab Runners, and a weekly AI-powered security audit.
May 13, 2026 · 22:006 min
What Free LLMs Actually Cost
I bought a NUC to run local LLMs and escape API costs. Then I tested local, free cloud, and paid cloud against the same prompts. The result wasn't 'pay for inference' or 'run it yourself' — it was that 'fast and free' isn't a quadrant that exists right now, and that has implications for anyone planning a personal AI setup.