I would like to propose promoting Michael Droettboom as a core developer.
Michael was initially nominated as a triager by Christian Heimes in 2022 and since then he has authored 65 Pull Requests in the Python organisation, and was involved in reviewing numerous PRs from contributors and core developers (see stats below).
Michael Droettboom is a Principal Software Engineering Manager at Microsoft on the CPython Performance Engineering Team. He has been contributing to open source for over 25 years. Some of his contributions include
- Former lead maintainer of matplotlib
- Major contributor to astropy
- The original author of Pyodide
- The original author of airspeed velocity.
His work has supported such diverse applications as optical sheet music recognition, the Hubble and James Webb Space Telescopes, infrared retinal imaging and the Firefox web browser.
Apart from his involvement in managing the CPython Performance Engineering Team, his focus has been related to measurement of the interpreter, whether that’s benchmarks, coverage or pystats (optional event counters within the interpreter). He has made numerous improvements in the CPython performance measurement ecosystem, including the pyperformance suite and the pyperf tools.
In my experience interacting with Michael, he has proven several times that he cares about maintenance and backwards compatibility as much as he cares about speed and he has always reacted very well to feedback in this regard. I have always had a fantastic experience working with him in pull requests, issues and live discussion. He is very easy to work with and he has proven that he can listen to feedback and act on it. He is also kind to contributors and knows how to give effective and actionable feedback.
Here are some selected links and sections to get an idea of Michael skills and accomplishments:
Statistics
-
Merged PRs: Search · is:pr is:merged author:mdboom archived:false org:python · GitHub
-
Reviewed PRs: Search · reviewed-by:mdboom -author:mdboom archived:false org:python · GitHub
-
Involvement in issues: Search · involves:mdboom archived:false org:python · GitHub
Major accomplishments in CPython
Benchmarks
Michael’s contributions have mainly been to related projects, not CPython directly, but all in the service of CPython.
- Collect specialization statistics from running benchmarks Adding support for pystats to pyperf
- Add support for profiling benchmarks Adding support for Linux perf to pyperf
- Michael obtained committer rights to psf/pyperf as a result of the above work
Additionally, Michael maintains the bench_runner project, which allows anyone to set up a Github repo to run pyperformance benchmarks on their own hardware (self-hosted runners).
The results from using bench_runner on Microsoft-owned machines are published on the faster-cpython/benchmarking-public. In the future, Michael will explore making benchmarking runners more of a public resource and community project if the security issues can be resolved.
Pystats
Though they were started by Mark Shannon, Michael is probably the de facto maintainer of all things related to pystats.
- gh-110019: Refactor summarize_stats Refactoring the
summarize_stats.py
script to reduce duplication when comparing two snapshots. - gh-117121: Add pystats to JIT Adding new statistics to the experimental JIT code.
- gh-115362: Add documentation to pystats output Making the pystats output more intelligible for non-experts.
- gh-109329: Support for basic pystats for Tier 2
- Support comparing two sets of pystats
Coverage
Michael started an effort to improve C-level coverage in the CPython test suite that resulted in over 65 pull requests from multiple contributors.
I talked to Michael about this potential new role and its responsibilities, and he is excited to become a member of the core dev team. I am confident of Michael skills and attitude and his dedication to improving Python and I am sure that he will be a productive member of the team for years to come.
Post-promotion mentoring
As it was done in previous promotions I will continue to mentor him for one month after his promotion (if it’s accepted) to help him to deal with his new responsibilities, and as I have done with previous mentees, I plan to require him to ask me before merging anything until he will be used to the process (although he is more than ready in this regard in my oppinion).
Vote process
As a reminder from PEP 13 regarding voting rules:
It is granted by receiving at least two-thirds positive votes in a core team vote that is open for one week and with no veto by the steering council.
- Promote Michael
- Don’t promote Michael