Sometimes I make things on the computer. Usually these are things that I’ve built for my employer and I am able to share a stripped down version. Here are those things.


If you use Supervisor to manage processes on your hosts then this is a system for you to monitor and configure those hosts with much more automation than logging in to each host to run supervisorctl and much more security than opening up the Supervisor’s built in web application. It keeps track of host configurations, program configurations, and program state on each host and reports them all back to you immediately in a web application where you can see what programs are running where and whether they are health.

NOTE: The version on GitHub is insanely out of date. The latest version that I’m using does not use a message bus and strictly uses a REST API to handle all communication. I also haven’t had time to document it. That will come soon.


Your programs and your servers and your systems generate events. The disk is full. This program is unhealthy. This server is down for maintenance. These events need to be acknowledged and acted upon. This is a system for receiving events and displaying them in a real-time console and alerting you when things escalate beyond a certain severity.

NOTE: The version that I’m running right now is not currently on GitHub and has not been documented. This will come soon.


Do you have an assortment of languages that you’re supporting but within each language the build and test and installation commands are all the same? Do you not want to have to remember exact build steps for each project? Do you not want to have to remember where a program gets deployed? The push tool handles all of that for you using predefined language templates that know how to build, test, and install your program using a small configuration file within your project. It does all this using Invoke and Fabric.

NOTE: The version on GitHub is slightly old and I haven’t had a chance to document it yet. However, it is largely representative of what I’m currently using.


This is a pretty simple program that assembles multiple directory trees onto remote servers using rsync. It makes it easy to build something once on a build server and then deploy it to multiple servers.


The pgcheck tool is a monitoring PostgreSQL based on Bucardo’s check_postgres tool. You define what checks you want in one or more configuration files and this tool will run those checks and forward them to whatever monitoring system that you have. We use this at the University of Washington to monitor all of our servers and send them to our EventAPI.

PostgreSQL Tricks

Throughout the years I’ve picked up a number of tricks and queries from the PostgreSQL user groups and Internet forums including how to shovel data about the database and queries against it into Graphite and how to monitor the database for security and performance. These are some of those tricks.