Ross Edman · Sr. Principal Engineer at Twilio

Notes from below the application layer.

Infrastructure, Go, homelabs and the small tools that make a terminal feel like home. Written down so I remember how I did it.

Latest

research texas weather

North Texas Summer Nights Are Heating Up Faster Than the Days

Thirty-five summers of NOAA data from DFW Airport: 100° days come and go, but nights that stay above 80°F have more than doubled.

Oct 10, 2026 · 7 min read Read

Archive

2026 5 posts

  1. BuildKit As A Library: A CI Pipeline In Go Drive Docker's built-in BuildKit from a Go program to vet, test and cross-compile a project in parallel, with caching, and export the binaries to your machine. 8 min read #docker#go
  2. Shipping Your Own Docker Syntax With BuildKit Write a BuildKit frontend in Go that turns a three-line YAML file into a tiny container image, publish it as an image, and use it from any docker build with a # syntax line. 11 min read #docker#go
  3. 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
  4. 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
  5. 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
All posts