Blog
Thoughts on software engineering, backend development, and tech.
More Posts
- Apr 8, 2026 tmux + Neovim + AI: My tdev Workflow for AI-Powered Development Sessions
- Apr 8, 2026 NixOS vs Traditional Linux: Why I Made the Switch and What I Learned
- Apr 7, 2026 Bash Essential Aliases and Functions
- Apr 7, 2026 I Assumed SvelteKit 5 Would Just Work. I Was Wrong About the Mental Model.
- Apr 6, 2026 Multi-Agent Orchestration in Go
- Apr 6, 2026 How to Actually Read Nix Error Messages (Without Crying)
- Apr 6, 2026 Reproducible Dev Environments with Nix and direnv
- Apr 5, 2026 Notes on My First Factorio Mod: Why I Stopped Trusting the Shift-Click Dance
- Apr 5, 2026 How I Organized over 100 NixOS Modules Without Going Crazy
- Apr 5, 2026 Deploying SvelteKit to Cloudflare Workers for Free
- Apr 4, 2026 AI-Built Apps Are Breaking Businesses
- Apr 1, 2026 How I Built a Factorio 'Auto Mall' Generator in Go
- Mar 29, 2026 Cloudflare Workers: What I Learned Building With Them
- Mar 28, 2026 Notes on Rolling Checksums: A Weekend with rsync's Adler32
- Mar 26, 2026 Notes on Testing: Why I Prefer Testcontainers Over Mocks
- Mar 25, 2026 Practical Notes on DRY: Why I'm Okay with a Little Duplication
- Mar 25, 2026 Building Tool-Using AI Agents in Go with LangChainGo
- Mar 24, 2026 How I Actually Structure My Go Services
- Mar 22, 2026 Notes on My Blog's 'Self-Publishing' Pipeline
- Mar 20, 2026 SSH Config: From Spaghetti to Sanity
- Nov 9, 2023 GitHub PR Checkout: Two Methods That Actually Work
- Oct 14, 2023 Bash Shortcuts I Use Every Day
- Oct 8, 2023 Building My First Custom Mechanical Keyboard
- Sep 18, 2023 Neovim Keybindings and My Workflow