Posts
All the articles I've posted.
Building an Internal Developer Platform That Deploys Into Someone Else's Cloud
Multi-tenant infrastructure generation, and the three design decisions that turned out to matter most.
The Devices Were Fine. The Primary Key Was the Problem.
Bridging 1,000+ MQTT devices into Pub/Sub, Spanner and BigQuery, and why a monotonic primary key quietly caps your write throughput no matter how many nodes you add.
We Deleted Old Readings Every Night. That Was the Expensive Part.
A telemetry table that only grows forces three decisions: how you remove data, how many resolutions you keep, and what happens when a device reconnects and replays six hours of buffer.
The Webhook Must Reply in Seconds. The Useful Work Takes Longer.
Designing a Go alerting service where every operation worth doing is slower than the budget you have to respond in, and the sender retries if you are late.
Why our Gitea went down every Sunday at midnight
A short post-mortem on recurring midnight outages on our internal PaaS, and why single-replica stateful services plus a maintenance window is a bad combination.
Welcome, how this blog is built and served
Why this site is a static Astro blog on GCS behind Cloud Run: near-zero cost, scale-to-zero, and deploys that are just git push.
Hello, world, a blog that costs almost nothing to run
Why this blog is a static Astro site served from a GCS bucket through Cloud Run, with zero footprint on any cluster and a scale-to-zero bill.