MOBILE: (404) 310-4158



Early 2017 - 2018

My role has been one of a general technical lead for CourseArc. I've led efforts related to designing and implementing a stable and scalable infrastructure, foundations for a CI/CD pipeline, monitoring systems, ChatOps support, etc. It's all orchestrated and maintained via a Node.js CLI project, which utilizes tools such as Terraform and Ansible to automate an immutable infrastructure in AWS, for multiple auto-scaled environments in isolated VPCs. I've also led efforts around improvements in the application layer for all sites and services, moving towards scalable microservices, components, and better support for automated testing, integration, and deployment.

Modern Tribe

Summer 2016 - Fall 2017

I came on board with Modern Tribe in order to provide some part-time help on production system support and DevOps direction. Modern Tribe is a Wordpress agency building solutions for a lot of clients. There were many different projects in various states of maturity. I helped them adopt some automated practices for infrastructure provisioning and configuration, some CI/CD adoption via Jenkins, Slack, GitHub integrations, etc. In addition to immediate needs, I also guided some longer term decisions around adopting common tools and process for dealing with the various environments and projects for their clients.

One project of note is Café Bon Appetit. I first started helping out with this one in late summer 2016. I was asked over the course of a few days to deal with some production support issues. They were hosting their 3 sites with a handful of other services on a single host that was not managed in an automated way, was no longer capable of handling the load, and had been tinkered with so much manually that it was nearly impossible to track down all the problems. Daily fire drills over the course of a week led me to quickly pitch a proposal to get it all moved over to AWS, automated management of most resources via AWS cli and bash scripts, Ansible provisioning and configuration of resources, as well as CI/CD support via their own hosted Jenkins instance. All of this for dev, testing, and production environments, including capabilities for automated backups, monitoring tool integration, and migrating data between environments. We turned it around in about a month. Over the following 6 months or so, we monitored an uptime of somewhere around 99.8% with very few alarms in regards to infrastructure issues. I continued to drive the project in the right direction by leading conversations such as facilitating greater understanding and adoption of deployment workflows and furthering horizontal scaling efforts, albeit at a pace that was within the comfort level of change for the client.

The other big push I made with Modern Tribe: work towards a common workflow and set of tools for all projects. Some of this was as simple as standardizing git branching strategies, and some as complex as strategy around disposable per-project, per-branch environments for development and testing. This led to the beginnings of an open-source project I now maintain, Cloud Gardens.

Cloud Gardens


An OSS project that I maintain. It's a fully-automated, mostly-immutable isolated AWS VPC ecosystem for deploying and managing per-project, per-branch, disposable microservices in Docker containers via Jenkins. In other words, small agencies or startups with little or no DevOps or sysadmin resources might be able to save some money and time while more quickly jumpstarting their product or offering. Some items on the roadmap for this project:



This is a project that was very much based on personal need. I started developing macOSa at some point in 2016 to help ease the pains of maintaining my own Mac workstation(s). It's built on bash, Ansible, and Python. It provides an easy and quick way to get up-and-running with a new OSX or macOS install just the way you need it, as well as providing an easy way of maintaining the state of your workstation. I've been using it regularly since 2016 with a lot of success. I've been able to set up new Mac workstations with everything I need in just a few hours, and most of that time I can spend doing other things. It just runs and works for me for the most part. It's also helped in auditing changes I've made on any given machine. I hope to continue to make it even better with features such as manual-change awareness, UIs for non-techy folk, and network-based provisioning/management.


Late 2016 - End of 2017

I love maps and getting out on the trail, so when I ran in to some guys that were working on this project in my neck of the woods here in Colorado, I jumped at the chance to help out. Traildock is an open trail data and mapping platform. The effort had no dedicated technical lead, so I took on the role. One of the first efforts was to get an API up-and-running for capturing and digesting trail-related data. I made use of, Node.js tools, MongoDB, and S3/CloudFront. There's also a generic layer for integrating with other trail data sources such as OpenStreetMap. I also spent a good deal of time setting up infrastructure and ops-related tools and services. Builds and deployments are automated. All services are containerized and managed via a custom Rancher install.

I also started work on some mobile/native efforts for this project, including some prototyping work in React Native.


Spring 2016 - Fall 2016

This was general development help primarily. One of the more important efforts I led was the switch from Grunt to Gulp for their frontend build system, and in turn making it easier for all the devs to use in the development workflow. They had tons of pre-build frontend assets, so I needed to find every way I could to squeeze better performance out of the process, including custom checksum and file comparison methods b/w source and build files that saved time during building.

I also worked a good deal with Ansible during this contract. I helped tweak things here and there to speed up the provisioning performance.

Bletchley Park

2014 - Summer 2015

This was mostly AngularJS development, some d3 work as well. I was on a single project, an application for CA Technologies that helped with Mobile App Performance Monitoring. I also spent some time working with the CA folks to make a better local development environment for the project care of isolated local VMs and vagrant. The mock APIs they provided didn't really give us useful data to develop against, so I helped build out some useful mock data and automated strategies for maintaining.