Skip to main content

Work

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.

Presentations

I have given several presentations at conferences, most notably the SciPy conference. A selection of my presentations include:

  • Python Array API Standard: Toward Array Interoperability in the Scientific Python Ecosystem SciPy 2023.

  • SymPy Introductory Tutorial SciPy 2023. Co-presented with Sangyub Lee.

  • SymPy Code generation SciPy 2016.

  • Conda: A Cross Platform Package Manager for any Binary Distribution SciPy 2014.

Open source projects that I use heavily and contribute to

(though some not as much as I would like)

  • NumPy is the core library for numerics in Python, which implements the standard array type and some common algorithms. I have contributed to NumPy, primarily as part of my work on the array API standard.

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

  • 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).

  • 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.