Skip to main content

Projects

A mix of open source contributions, infrastructure tooling, and personal utilities. Active projects only — archived work has been removed.

Open Source Contributions
#

MetaCPAN
#

MetaCPAN is the open source search engine for CPAN, the Comprehensive Perl Archive Network. It provides a web interface and API used by the Perl community worldwide.

I have been a long-term contributor to the MetaCPAN project, leading the migration of the entire infrastructure from Docker Compose to Kubernetes. The metacpan-k8s repository contains the Kubernetes manifests and configuration that now runs the production environment. Prior to that I worked on the OpenAPI implementation for the MetaCPAN API.

Kubernetes and Infrastructure
#

kubectl-consolidation
#

A kubectl plugin that surfaces Karpenter consolidation blockers for nodes in a cluster. When Karpenter cannot consolidate nodes, the reason is often buried in logs or annotations. This plugin makes the blockers visible at a glance.

Terraform Providers
#

terraform-provider-kanidm
#

A Terraform provider for Kanidm, a modern identity management system. Supports managing users, groups, OAuth2 clients, and OIDC configuration via Terraform. Useful for teams running self-hosted identity infrastructure.

terraform-provider-soft-serve
#

A Terraform provider for Soft Serve, Charm’s self-hosted git server. Manages repositories, access controls, and settings over SSH using Terraform.

Go CLI Tools
#

git-reword
#

Reword git commit messages without shell-quoting headaches. Useful when amending or rewording commits that contain characters that confuse the shell.

git-track
#

Add or remove remote branch references from git configuration. Simplifies tracking remote branches in repositories with complex remote setups.

zenlog
#

No more tee-ing. zenlog captures both stdout and stderr to a log file while still displaying output in the terminal, without requiring pipes.

Fish Shell
#

git.fish
#

A collection of fish shell functions to make git less painful. Focused on reducing keystrokes for common git workflows.

kubectl.fish
#

Fish shell functions for working with Kubernetes. Wraps common kubectl operations to reduce repetition when navigating clusters and namespaces.

fishies.fish
#

A collection of useful fish scripts that cover automation tasks without a more specific home.

Obsidian Plugins
#

obsidian-slack-emoji
#

An Obsidian plugin that renders Slack-style emoji shortcodes (:tada:, :rocket:, etc.) inline in notes. Useful when moving content between Slack and Obsidian.

obsidian-backup-git
#

An Obsidian plugin for automatic git-based backup without remote sync. Commits vault changes on a schedule, preserving local history without requiring a remote repository.

System Configuration
#

dotfiles
#

Configuration for git, NeoVim, tmux, and the fish shell. Maintained as a living record of how my development environment is set up.