I'm a software engineer focused on backend systems and infrastructure. I care about the underlying parts: the queues, the schedulers, the migration scripts, the runbooks nobody reads until 3am.
Most of my day-job output is behind closed doors, so I keep a handful of projects running to stay sharp and to share what I'm learning. The notes here serve the same purpose — writing forces me to actually understand the things I think I understand.
Projects
All Projects- Argus A self-hosted uptime monitor — concurrent checker in Go, real-time SolidJS dashboard, Postgres-backed history, and BetterStack-style request timing.Go active
- example-project Short description of what it does and why it exists.Go active
- example-mdx-project A demonstration of MDX features available in project detail pages.Go active
Recent Posts
All Posts-
Permission denied (publickey) is never a firewall problem
I spent an hour debugging a firewall that was working perfectly. The error message had told me so in its first word.
-
Hardening a VPS is a sequencing problem
Every setting I changed was one line I could have found in thirty seconds. The evening went somewhere else entirely — into deciding what order to apply them in.
-
Understanding Worker Pools in Go
You have 1,000 URLs to check. This post walks you through why the obvious approach breaks, and how a worker pool fixes it — built from scratch, explained simply.
-
`errors.Is` vs `errors.As` vs `errors.AsType` — when to use which
Three tools, three different questions. A practical guide to Go's error inspection functions and when to reach for each one.