About

Our purpose is not to “write code”, but rather add value.

Platform and infrastructure engineer with 15+ years shipping software and growing teams. I build the CI/CD, container, and data platforms other teams ship against — Kubernetes, Ruby on Rails, Go, Redis at scale.

Open Source Contributions

A selection of my open source work, grouped by the kind of contribution — the projects I help maintain, the changes I’ve authored and merged upstream, work I have in review, and bugs I’ve reported and diagnosed.

Maintainer

powerhome/redis-operator

https://github.com/powerhome/redis-operator

A Go Kubernetes operator that manages highly-available Redis with Sentinel-based automatic failover. I’m the de-facto maintainer: roughly 40 merged pull requests and the release owner from v1.8.0 through the current v4.4.1. I added HAProxy-based client routing, master/replica failover healing that disconnects clients from demoted nodes, and ongoing Kubernetes-version support. Adopting and maintaining this operator let my team replace commercial Redis Enterprise licensing with an internally-run, open-source alternative.

Authored and Merged Upstream

HAProxy

https://github.com/haproxy/haproxy

The reliable, high-performance TCP/HTTP load balancer. I authored and merged an init-state server-configuration feature (commit 50322df), closing a years-open issue and fixing a Redis-failover bug that had caused production incidents. The fix benefits every HAProxy user.

Shopify/shipit-engine

https://github.com/Shopify/shipit-engine

Shipit is a deployment tool that makes shipping code better for large teams who build and deploy GitHub repositories together. As an outside contributor from 2019 to 2021 I merged 22 pull requests, spanning domain modeling (elevating the repository to a first-class concept, renaming PullRequest to MergeRequest) and maintenance-grade internals (task timing on a monotonic clock, git-cache-corruption recovery). I was the primary author of its “Review Stacks” feature (PR #1102): ephemeral, full-stack preview environments spun up per pull request.

derailed/k9s

https://github.com/derailed/k9s

A popular terminal UI for managing Kubernetes clusters. I contributed the Gruvbox light and dark skins (PR #1088).

percona-xtradb-cluster-operator

https://github.com/percona/percona-xtradb-cluster-operator

Percona’s Kubernetes operator for XtraDB Cluster. I contributed a fix merged upstream (PR #521) that resolved a crash when the operator pod started without a HAProxy PodDisruptionBudget.

rubyforgood/mutual-aid

https://github.com/rubyforgood/mutual-aid

Mutual Aid is when people get together to build community by voluntarily sharing resources with each other. Mutual Aid groups are more concerned about local resiliency than global campaigns, and prefer solidarity before charity. I contributed 10 merged pull requests, largely hardening the Docker-based development environment for new volunteers.

In Review

basecamp/kamal

https://github.com/basecamp/kamal

Basecamp’s tool for deploying web applications anywhere. I’ve proposed a SOPS secrets adapter so Kamal can pull deploy-time secrets from a SOPS-encrypted file (PR #1906), along with the accompanying documentation (kamal-site PR #201). Both are open and under review.

Reported and Diagnosed

rubocop/rubocop

https://github.com/rubocop/rubocop

I reported a correctness bug where a Style/InvertibleUnlessCondition autocorrection could silently break application logic (issue #11800).

percona-xtradb-cluster-operator

I reported that the example configuration ships a sourceRetryCount that diverges from MySQL’s default and breaks replication on routine source restarts (issue #2523).

PagerDuty/terraform-provider-pagerduty

I reported a “product limit exceeded” failure when updating a service’s escalation-policy reference (issue #1025).

Side Projects

resque-alive

https://github.com/indiebrain/resque-alive

A Kubernetes liveness probe for Resque, written in Ruby, so a stuck or dead worker is restarted automatically rather than silently draining the job queue.

asdf-guile

https://github.com/indiebrain/asdf-guile

An asdf version-manager plugin (Shell) for installing and switching between GNU Guile versions.

.files

https://github.com/indiebrain/.files

My personal dotfiles: a modular Emacs Lisp configuration and shell setup, organized with GNU Stow and still actively tended.

futurist

https://github.com/indiebrain/futurist

A Ruby take on futures and promises, inspired by Celluloid’s block-based futures, that transparently backgrounds work by forking processes.

Talks

Git Internals

https://github.com/indiebrain/talks/blob/master/git_internals/git_internals.org

Explains the inner workings of git, and sheds some light on how the internal structure of git as a data store shapes its user interface.

Git Workflow

https://github.com/indiebrain/talks/blob/master/git_workflow/git_workflow.org

Treats version-control history as project metadata: a workflow built for reason-ability (what, exactly, is in production?), communication, and a semantic commit history that records the intent code alone can’t.

Release It!

https://github.com/indiebrain/talks/blob/master/release_it/release_it.org

A brief, messy history of releasing software — from ENIAC and the 1968 “software crisis” to how modern practices arrived at continuous, lower-risk delivery.

Elsewhere

Recent Posts