Skip to main content


Here are some things that I've worked on. Most of what I do is open source, and most of my open source work is on my GitHub page. Everything I do is liberally licensed (BSD or MIT) if possible.

Main projects

Side stuff

Stuff I've done on my own. In no particular order.

  • Brown Water Python. Better documentation for Python's tokenize module (in the spirit of Thomas Kluyver's Green Tree Snakes).

  • removestar. A tool to automatically replace import * with explicit imports in Python files.

  • mypython. I wrote my own Python REPL.

  • catimg. Shows an random image of a cat from Imgur inline in the iTerm2 terminal.

  • prefsync, a little tool to help sync OS X plist files in a human-readable format.

  • dotfiles. All my dot files (configuration files) for various things. Mostly my emacs and bash configuration.

  • A walkthrough of the GitHub workflow for contributing to open source projects.

  • This blog.

  • My old blog. Contains posts from when I was a Google Summer of Code student, posts about when I moved to emacs, and other interesting things about Python and mathematics.

  • A presentation about why you should be using Python 3.

Open source projects that I use heavily and contribute to

(though some not as much as I would like)

  • PuDB, a curses-based debugger for Python. It has been an essential tool for debugging and understanding Python code. I wrote some blog posts in the past about it.

  • Prompt Toolkit, a library for building interactive prompt-based terminal applications, such as shells and REPLs. I use this heavily in mypython (see above).

  • NumPy is the core library for numerics in Python, which implements the standard array type and some common algorithms. I have contributed to NumPy, specifically the numpy.array_api module (see the next bullet).

  • Array API specification is a specification for Python array APIs, such as NumPy and other similar libraries. I have worked on this as part of my work at Quansight, including work on the official test suite as well as the NumPy implementation of the specification.

  • Numba. Numba is JIT compiler for Python that lets you write pure Python code that executes as fast as compiled code. I have contributed to Numba as part of my work at Quansight.

  • Conda, a package manager. I worked on conda when I was at Continuum Analytics (now called Anaconda). Conda is the package manager included with the Anaconda distribution. I no longer work on conda, so if you have any questions about it, you should reach out to the support channels at Anaconda.

  • conda-forge is a free distribution of conda packages maintained by the community. While I am not involved in the conda-forge core development, I do help maintain several package feedstocks.