Projects

All of these projects can be found on my GitHub page, and most are MIT licensed.

Transit trackers

Massachusetts Bay Transportation Authority

Central Ohio Transit Authority

Back in 2009 I wrote a real-time vehicle tracker for the MBTA bus system. I’ve updated it over the years to cover buses, subways, commuter rail, and ferries. When COTA announced real-time tracking of their buses, I implemented it as well.

More background on it can be found in this post.

Home automation

I’ve written a few tools and services for home automation, mostly using HomeControl, which is an Apple HomeKit Accessory Protocol implementation written in Go.

carwings
A library and command-line utility for the Nissan Leaf Carwings API.

homecontrol-carwings
HomeKit support for the Leaf, built on my carwings library and HomeControl

homecontrol-wemo
HomeKit support for Belkin Wemo devices using HomeControl

thermistor
A fun home electronics project to expose two thermistors as temperature sensor accessories, built on a Raspberry Pi using Gobot and HomeControl.

Go tools and packages

I’ve written a handful of tools for Go programmers. This is not an exhaustive list.

envdecode
A package for populating structs from environment variables using struct tags.

doc-extract
A tool for extracting text from Go source code using specially tagged Go comments. I’ve found this very helpful for building HTTP API documentation, which doesn’t fit well into the existing godoc system.

gengen
A stab at the Go generics problem by writing a code transformation tool. Because Rob Pike told me to do that, sorta.

nstats
A command-line tool for printing simple numerical statistics.

Other stuff

Things I’ve worked on for previous jobs and that are now mostly ignored.

leeroy
Jenkins integration with GitHub pull requests, before that was an easy thing to do.

galaxy
A Docker micro-platform-as-a-service. These days it’s called “service orchestration.” I gave a lightning talk on this at GopherCon 2015.