Sincere thanks to Kyle Stanley for nominating me, and to Christopher Barker who urged me to run again. I had not planned to for this term. When Chris wrote me earlier yesterday, there were only 4 nominations, and I was touched by his request.
In the last hours of the process, a number of additional nominees appeared, every one of whom is truly admirable, and whom I know from their contributions to the Python language and community, and in many cases personally as well.
That said, I believe I bring something somewhat different than other nominees to a seat on the Steering Committee. I am not a core contributor, and I think that fact brings somewhat “fresh eyes” to the language as used by millions of developers who are not quite as much “in the thick” of implementation decisions as core developers, but who still very much love and rely on the Python language.
I also think that among the all the nominees, I am the most centrally located in worlds of scientific/numeric computing, and of data science/maching learning. These applications are certainly not the only—nor even the main—purposes of Python, but this sub-community represents an important and growing segment of Python developers, and brings some of its own concerns. Quite possibly if Carol Willing were running again, I might decline this nomination, but she appears not to be.
I’ve also focused a great deal on Python pedagogy, over my entire 20+ year membership in the Python community. I’m not alone among nominees in that element, but I have created a lot of training material, delivered a lot of courses, written books, and so on. This brings an eye focused on accessibility of features, and a skepticism about new syntax and large changes in functionality of the language.
I’m going to include an edited version of the statement I made last year. It’s a bit long, and probably reads a bit too much like a resume or cover letter. Feel free to skim the below, I think my basic candidate statement is in the couple paragraphs above.
I have been a user of and advocate for the Python programming language since 1998. I have served the Python community in a number of capacities during that time, and would be honored if given the opportunity to do so as a member of the Steering Council.
I have written a number of books about Python. During this last quarantine almost-2 years, I wrote Cleaning Data for Effective Data Science: Doing the Other 80% of the Works and The Puzzling Quirks of Regular Expressions. Both of those are perhaps notable in being not Python books as such; rather they are about concepts that developers should think about, and Python is merely used as a means to illustrate those concepts (the first book shows a few other languages to a lesser extent as well).
Over roughly the duration of the 2000s I wrote the most widely read column worldwide on the Python language, entitled Charming Python (for IBM developerWorks, which for approximately that duration had a wonderful Free Software focus), which I believe had a modicum of influence on several language developments. More recently, I have created training programs in Python for several well-known organizations. I have spoken frequently at Python and Free Software conference around the world.
Beyond the writing and pedagogical activity, I have served the Python community by being elected and serving as a Director of the Python Software Foundation for six years. I continue to chair several PSF Working Groups, and have worn several other hats within the PSF.
While not my initial background (my doctorate is in political philosophy, not anything about computing or sciences), for the last 12 years or so I have had a particular focus on the use of Python for scientific and numeric computing, and within data science and emerging machine learning areas.
Visions for the Python Language
Python is used in a large number of domains, and serves many of those very well. This is indicated in the fact that it has grown to become one of the top 5 most popular programming languages, probably even the top 3, depending on metric. Given the areas I have worked in, and what I have thereby become somewhat knowledgeable about, I will bring a particular attention to how potential language-level changes will affect or be utilized by scientific computing (including but not limited to ML).
For those voters who read python-ideas and/or python-dev, you will recognize that I have opined fairly often on those mailing lists about various possible language changes. For those who primarily communicate via Discord, Twitter, or other channels, I will be less visible. Generally my attitude about changes is fairly starkly conservative in the sense that as a rule I do not think that a syntax change should be made where a library will suffice. For the most part, likewise, I prefer new libraries to live first—and quite likely always—on PyPI or conda-forge rather than in the standard library. Rules have many exceptions though.
Given the background I have, I believe I would bring more precise judgment to decisions about the “user surface” of the language than to decisions about implementation internals. I recognize both kinds of decisions are very important, but as much as I can sell myself for this position, it is as someone knowledgeable about what Python users would benefit from.
Python Community and Professional Work
- Director of PSF for 6 years
- Co-chair of Trademarks Committee for 13+ years
- Co-chair of Scientific Python Working Group
- Co-chair of Python Cuba Working Group (mostly defunct)
- Co-chair of Outreach and Education Committee (defunct)
- PSF Election Administrator for a bunch of years
- Liason for PyLadies from PSF
- CodeChix technical advisor
- Open Voting Consortium (open source, Python voting, with paper ballets) CTO
- Creator of training program for Continuum Analytics (renamed Anaconda Inc)
- Trainer and training creator for Safari Online, INE, 60 North, DataCamp, various others
- Contributor to numerous open source projects (generally in small bits though)
- Full-time consultant for 9 years with D.E. Shaw Research, working with the world’s fastest, highly specialized (custom ASICs, networking with less latency than infiniband), supercomputer for performing molecular dynamics
Publication and Speaking (partial)
The Puzzling Quirks of Regular Expressions, Lulu 2021
Cleaning Data for Effective Data Science, Packt 2021
Functional Programming in Python, O’Reilly 2015
Text Processing in Python, Addison Wesley 2003
Charming Python (column), IBM developerWorks 2000-2008
XML Matters (column), IBM developerWorks 2001-2006
- A few hundred miscellaneous articles in computer programming topics
- Numerous academic publications in philosophy, computer security, political theory, etc.
- Machine Learning with scikit-learn (video), Addison Wesley 2018,
- Machine Learning with PyTorch (video), Addison Wesley 2019
- OSCon 2006, Open Source Voting
- OSCon 2007, Open Source Voting (revisited)
- Pycon 2010, Maximize your program’s laziness
- PyCon 2012, Coroutines, event loops, and the history of Python generators
- OSCon 2012, US Patriot Act and implications for Cloud Computing & Data Privacy
- PyCon-India 2012, Keynote Address: A verifiable election system
- PyCon 2013, Why you should use Python 3 for text processing
- PyCon-UK 2013, Keynote Address: What I learned about Python, and about Guido’s time machine, by reading the python-ideas mailing list
- PyCon-ZA 2014, Keynote Address: What I learned about Python, and about Guido’s time machine, by reading the python-ideas mailing list
- Los Angeles Professional Python Users Group, PyPy-STM
- PyCon Belarus 2015, Keynote Address: Python’s (future) type annotation system(s)
- Encuentro Social de Desarrolladores (Cuba), Functional Programming in Python
Conferencia Internacional de Software Libre 2016 (Cuba), Reflections on teaching Python to working scientists
- PyCon 2016 (Education Summit), Reflections on teaching Python to working scientists
- PyData SF 2016, Keynote Address: Working Efficiently with Big Data in Text Formats
- PyData Seattle 2017, Tutorial: Parallelizing Scientific Python with Dask, with Jim Christ
- PiterPy 2019, Interview with PiterPy Organizer
- PiterPy 2019, Generative Adversarial Networks
- Gitex Global 2021, Keynote: The Future History of Generative Adversarial Networks
- 3 webinar sequence on scikit-learn (recurring), Safari Online )
- 3 webinar sequence on PyTorch (recurring), Safari Online
- 5 webinar sequence on Cleaning Data (recurring), Safari Online
Atlantis Technology (consulting company)