I've initiated, contributed to, and maintained a number of free software projects.


Clojars (Clojure)
The community repository for Clojure libraries.
Clojure (Clojure)
A modern functional lisp language with advanced concurrency features.
Conkeror (Javascript)
A no-compromises, keyboard-driven, extensible web browser.
Clojure Mode (ELisp)
The Emacs mode for the Clojure language.
GNU Emacs (ELisp)
The extensible, self-documenting lisp machine and text editor.
ERT (ELisp)
A testing tool for Emacs Lisp libraries. Now part of Emacs.
Hpricot (Ruby)
A delicious HTML parser.
JClouds (Clojure)
A cross-provider library for working with remote storage and compute APIs from Java and Clojure.
JRuby (Ruby)
An implementation of Ruby on the JVM.
Logplex (Erlang)
A distributed log routing system.
Magit (Elisp)
A Git frontend for Emacs.
Microscheme (Scheme, C)
A compiler for a subset of Scheme targeting AVR microcontrollers.
Mirah (Ruby, Mirah)
A low-level programming language targeting the JVM. Formerly known as Duby.
package.el (ELisp)
The Emacs Lisp Package Archive; a package manager for Emacs. I maintained this for a time before it was merged into Emacs 24.
Quil (Clojure)
A graphics library for artistic exploration.
Rack (Ruby)
The web server adapter for Ruby frameworks.
Rackjure (Racket)
A Racket language which brings many of Clojure's conveniences to the Racket platform.
Ruby on Rails (Ruby)
A web framework for Ruby designed to allow quick application development.
RDoc (Ruby)
The documentation tool for Ruby code.
Rubinius (Ruby)
A Smalltalk-inspired Ruby virtual machine and implementation.
Ruby (Ruby)
An object-oriented dynamic language.
RubyGems (Ruby)
Ruby's Package Manager.
Sonic Pi (Ruby)
Live-coding music synthesizer.
Vlad the Deployer (Ruby)
Pragmatic deployment automation, without mercy.


Atreus (C, Racket, KiCAD)
An open-source hardware, ergonomic mechanical travel keyboard design and firmware.
Bus Scheme (Ruby)
A Scheme interpreter written in Ruby, but implemented on the bus! I spoke briefly about this at RubyConf 08.
Bussard (Lua)
A space flight simulation adventure with a programmable ship and stations.
Cardinality (Lua)
A game authoring environment inspired by Hypercard and Scratch.
Grenchman (OCaml)
Fast-launching CLI client for running Clojure code over nREPL.
Leiningen (Clojure)
Project automation for Clojure designed to not set your hair on fire. Installed hundreds of thousands of times.
Mire (Clojure)
A multiplayer text adventure engine. Used as a sample program for the PeepCode screencast on Clojure.
Orestes (Forth, C)
A Forth implementation for microcontrollers.
Pindah (Mirah)
A tool for building Android applications with Mirah. Maintainership has passed to Brendan Ribera and Alex Parrott.
Orb (Lua)
A mock-unix operating system.
Prometheus (Erlang)
An XMPP-driven thermostat system.
Rinari (ELisp)
An Emacs mode for writing Ruby on Rails applications. Maintainership has passed to Eric Schulte and Steve Purcell.
Robert Hooke (Clojure)
A flexible, composable mechanism by which you can extend behaviour of functions after they've been defined.
Slamhound (Clojure)
A tool for reconstructing namespace declarations in Clojure files. Maintainership has passed to Sung Pae.
Smolforth (Lua, Forth)
A Forth implementation designed for embedding in games.
Syme (Clojure)
Manages disposable EC2 nodes for collaborating on GitHub projects via ssh and tmux. Maintainership has passed to Chris Bilson.
Miscellaneous Emacs Libraries
find-file-in-project, idle-highlight-mode, better-defaults, and scpaste.


November 2012, Raleigh, NC — The Continuing Adventures of Leiningen
A presentation given at Clojure Conj 2012 under the influence of a severe flu about the development and features of Leiningen 2.
March 2012, San Jose, CA — Swarm Coding
A presentation given at Clojure/West 2012 on running group-coding sessions geared towards exploration and learning.
September 2011, St. Louis, MO — Getting Cozy with Emacs
A workshop at Strange Loop 2011 for getting the most out of your Emacs customizations.
November 2010, Raleigh, NC — Making Leiningen work for You
A presentation given at Clojure Conj 2010 on Leiningen, the project automation tool.
April 2009 — PeepCode: Functional Programming with Clojure
A screencast teaching functional programming with the Clojure programming language. The first published commercial documentation released for the language. I wrote the script, but Geoffrey Grosenbach did the visuals and narration. Watched by thousands of developers.
December 2008 — PeepCode: Meet Emacs
An hour-long screencast tutorial introducing the GNU Emacs editor. Again, I wrote the script. Watched by thousands of developers. Now distributed by PluralSight.
November 2007, Charlotte, NC — Tightening the Feedback Loop [video]
A presentation given at RubyConf 2007 on measuring and improving programming habits.


Emacs Starter Kit (ELisp)
A set of dotfiles that provides better defaults and bundles other useful libraries for Emacs users. Used by thousands of developers. Deprecated in favour of better-defaults.
Swank Clojure (Clojure)
An adapter allowing SLIME to be used with Clojure. Deprecated in favour of nrepl.el.
Clojure HTTP Client (Clojure)
An HTTP client for the Clojure language. Deprecated in favor of clj-http.
Concourse (Ruby)
A web application to help schedule gatherings among participants with varying schedules. My entry for Railsday 06.
Erythrina (OCaml)
A desktop program for choosing among a list of options in a composable manner. New features in dmenu 4.5 obsolete this program.
Augment (Ruby)
A framework for gathering metadata from code and displaying it. Featured in my talk from RubyConf 07.
Conspire (Ruby)
A real-time collaborative editing platform using Git as a transport layer. Deprecated in favor of Rudel.
Ebby (ELisp)
An implementation of the Obby collaborative protocol (version 0.3) for Emacs. Deprecated in favor of Rudel.
Gitjour (Ruby)
A tool for sharing git repositories on a local network over ZeroConf. I maintained this project but did not create it. Deprecated in favor of Bananajour.
ElUnit (ELisp)
A testing framework for Emacs Lisp. Deprecated in favor of ERT.
RAV (Ruby)
A plugin for visualizing the data model of Rails applications. Deprecated in favor of Railroad.
RPlanet (Ruby)
A feed aggregator written in Ruby. Deprecated in favor of Mars.