All Posts
DNS from my containers timed out, and only from my containers
A Docker-published DNS server answered containers from the wrong address. The fix exposed a boot race. Both are one line each on a Raspberry Pi.
Coding with Claude Code: Plans, Sub-Agents, and a Multi-Model Review Loop
How I actually use Claude Code day-to-day — plan mode before any edits, asking clarifying questions instead of guessing, parallel Explore and Plan sub-agents, work split into phases with a feedback loop, and a three-way review pipeline across Claude, Copilot, and SonarQube.
Tracking your e-commerce funnel end to end with GTM and GA4
How to wire up Google Tag Manager and GA4 to track every step from first page view to purchase — and actually use the data.
Deploying Next.js to Cloudflare Pages with GitHub Actions
A complete walkthrough of wiring up a Next.js static export to Cloudflare Pages — production deploys on push, preview deploys on pull requests, all through GitHub Actions.
Why We Stopped Fighting Distributed State and Started Using Temporal
How we built a lead-to-policy insurance purchase journey with Temporal — and the failure scenarios that finally convinced us it was the right call.
How I Structure Go Microservices (And Why Every Layer Earns Its Place)
A walkthrough of the Go microservice architecture I've settled on after building production services — layers, dependency flow, swappable ORMs, and a CLI that's a first-class citizen.
- Updated
From Marquee Tags to RAG Architectures
A software engineer's arc from Dreamweaver, Flash, and WordPress plugins to Go microservices, no-code automation, and RAG architectures in Bangkok.
From Photo to Vector with vtracer
I needed a clean SVG of the Kathmandu skyline for my site. vtracer converted the photo to vector paths, with two flags doing most of the work.
On Shooting Street
What I've learned from years of photographing strangers in Kathmandu.