Archive

Writing

2026 3 posts

  1. Running A Go Service With systemd Write a systemd unit for a Go service, tell systemd when it's ready, keep the watchdog fed, reload on SIGHUP and lock it down with sandboxing options. 8 min read #go#linux
  2. Per-Directory Environments With direnv Load and unload environment variables per directory with direnv, and pull each project's secrets straight from 1password with op read. 4 min read #shell#tooling
  3. Graceful Shutdown: Respecting SIGTERM With Go Catch SIGTERM with signal.NotifyContext and let http.Server.Shutdown finish in-flight requests before your Go service exits. 5 min read #go

2021 4 posts

  1. Setting Env Vars From 1password Source secrets into your shell from the 1password CLI so your dotfiles can live in git with nothing sensitive on disk. 5 min read #security#shell
  2. Hot Reload: Respecting SIGHUP With Go Reload a Go web server's configuration when it receives SIGHUP, without restarting the process or dropping traffic. 6 min read #go
  3. Working With Multiple Git Configs Give work, personal and side-project repos their own git identity, credentials and hooks with conditional includes. 5 min read #git
  4. Build A Portable Lab In The Cloud Using Tailscale, Terraform and DigitalOcean Spin up DigitalOcean droplets with Terraform and cloud-init, join them to a Tailscale network, and tear it all down when you're done. 8 min read #homelab#terraform#networking

2020 1 post

  1. Building A Kernel For Ubuntu Upgrade the kernel on Ubuntu 20.04 the easy way with mainline builds, or the hard way by compiling it from upstream source. 6 min read #linux