I’ve written and contributed to a number of free and open source software packages over the years. Among them are the following.

Current software

  • jj-stack turns a series of mutable jj changes into stacked GitHub pull requests, preserving the same pull requests and their reviews while the local history is rewritten.

Older, unmaintained software

Maintenance status: I no longer actively maintain much of the software listed here. Details below may be out of date, and links may be broken.

Revision control tools

  • Mercurial, a fast, popular distributed revision control tool.

Haskell libraries and tools

  • Criterion, a powerful and statistically aware benchmarking library for Haskell.
  • mysql, pure Haskell bindings to MySQL that do not rely on external client libraries.
  • wreq, an ergonomic HTTP client built on lenses and sensible defaults.
  • stringsearch, fast Boyer-Moore and Knuth-Morris-Pratt search functions for ByteString.
  • Data.SuffixTree, an efficient lazy suffix tree implementation.
  • FileManip, a library for manipulating files efficiently.
  • cabal-rpm, an RPM packager for Haskell Cabal packages.

System tools

  • netplug, a Linux daemon for reacting to network cables being connected or disconnected.
  • pcap, a system-independent interface for user-level packet capture.
  • python-inotify, efficient Python bindings to the Linux inotify system call (the original Bitbucket repository is no longer available and no maintained fork has surfaced).