ReSec (Go)

Highly available Redis cluster using Consul for cluster management - it works independently of the native Redis Sentinel and Cluster options, and provide multiple operation benefits over the existing options. Was created with a strong focus on reliability and stability.

hashi-ui (Go + React)

UI for Consul and Nomad - created back in Nomad 0.2 where no offical UI exists, and quickly became (and remains) the de-facto UI for a lot of Nomad operators. Users include Apple, SeatGeek, Target and more.

go-metadataproxy (Go)

Used to allow containers to acquire IAM roles. By metadata I mean EC2 instance meta data which is normally available to EC2 instances. This proxy exposes the meta data to containers inside or outside of EC2 hosts, allowing you to provide scoped IAM roles to individual containers, rather than giving them the full IAM permissions of an IAM role or IAM user.

Nomad Firehose (Go)

Turn Nomad cluster changes into a firehose of events and send these events to 10+ different sink

Docker Mirror (Go)

Mirror/Copy Docker images between registries - useful if you don't want to rely on DockerHub or other registries and want to copy the Docker images "offline" (e.g. ECR)

Nomad Helper (Go)

A lot of useful tools for working with Nomad


SeatGeek - Staff Engineer

Platform, October 2020 - Present

SeatGeek - Engineering Manager

Platform / Delivery Engineering, December 2018 - October 2020

SeatGeek - Senior Engineer

Platform, February 2017 - January 2019

Bownty - CTO

April 2013 - February 2017

Nodes - CTO

January 2011 - April 2013


Languages & Frameworks

Golang, JavaScript (ES6+), Node.js, React, PHP (CakePHP)


PostreSQL, MySQL, Redis, ElasticSearch, Cassandra


DataDog, NewRelic, Graylog, InfluxDB, Grafana, APM (Application Performance Monitoring), Distributed Tracing (jaeger)

Cloud Native

Nomad, Consul, Vault, Packer, Docker


Amazon Web Services (AWS), CI / CD, Microservices, API design, Agile / Scrum