Rule #1: There are no rules.


This page is a work in progress.

These are a few of the software projects I’ve released over the years. There’s a lot more + most of my programming effort over the years has gone to collaborative projects not listed here, but this gives a taste of my work.

  • sendgrid (Clojure): A simple library for sending emails with SendGrid.
  • honeybadger / ring-honeybadger (Clojure): A highly-flexible, fully-featured Clojure client for reporting exceptions / informational reports to, and an associated Ring middleware for seamless integration into Ring web apps.
  • Raconteur (iOS): An elegant life-tracking application for iPhone. Raconteur took the concept of the five-year journal to iOS, complete with daily reminders to write, photos, and full searchability.
  • stoplight (Ruby): Stoplight controls code like traffic. It is an implementation of the circuit breaker pattern in Ruby. Taylor Fausak and I created it as a way to wrap sections of code that occasionally fail. It prevents failures from cascading by short-circuiting problematic calls and has kept OrgSync’s site up and running in production many, many times.
  • resque-backtrace (Ruby): A simple gem to solve a simple problem: when an exception occurs during a Resque job, no backtrace is visibly logged. In production you probably want to use an exception catching service, but in development you might just want to see the backtrace and fix the issue.
  • checkbox.el (Emacs Lisp): A tiny library for working with textual checkboxes in Emacs buffers. Use it to keep grocery lists in text files, feature requests in source files, or task lists on GitHub PRs.
  • whiteout (Ruby): A small utility for removing whitespace from files. My first gem.
  • SparrowToOmnifocus (Objective-C): Drop Sparrow emails onto the app to create Omnifocus tasks.
  • Octopress keyboard shortcuts (JavaScript): Just what it says on the tin.
  • (Python): A PyBlosxom plugin for overriding entry dates.
  • MoJo (PHP): Mobile Journal. A WAP-based client for
  • LJCommentsGen (PHP)