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
-
Array API Standard. I have been invoked in the Data APIs Consortium work on the Array API Standard. I have worked on the standard itself, the array api test suite, the array-api-compat package, and the
numpy.array_api
minimal implementation. I have given a talk about the array API standard at SciPy 2023, with a corresponding proceedings paper. -
ndindex. ndindex is a new library that I have started as part of my work at Quansight, which can be used to represent and manipulate indices to NumPy arrays (e.g., slices). I've also written a comprehensive guide to NumPy indexing which lives in the ndindex documentation
-
Versioned HDF5 is a library I designed and wrote as part of my work at Quansight. It is an open source Python library that adds a versioned abstraction on top of HDF5 files.
-
SymPy, a computer algebra system in Python. I've been a contributor to SymPy since 2009 when I participated in Google Summer of Code as a student, which was my introduction to open source.
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.