I’m nominating myself for the Steering Council 2021 term.
Work as a core developer
- 3rd most active core developer since my promotion and 2nd this year.
- Core developer since 2018-06-06.
- Release manager for Python 3.10 and Python 3.11
- My work is centred on the parser, the compiler, the garbage collector and the VM in general but I more or less work all over the place, maintaining also some of the CI bots (buildbot integration) and workflow.
- Several major improvements to the devguide, including the new Design of CPython’s Garbage Collector which has been very well received by many core devs and contributors.
- Maintenance and improvements of the Python speed server: speed.python.org. This involves running automatic benchmarks, cross-validation and monitoring the different benchmarks in a stable and reproducible manner and open issues in the bug tracker if performance regressions have been detected.
- Maintenance of the buildbot server and the CPython CI:
- Watch and monitor daily the buildbot server to spot failures, report them to the bug tracker and fix them (almost all of them if possible).
- PSF blog post covering my talk about the buildbot work at the Language summit.
- GitHub-buildbot server bots integration improvement to the GH workflow
- Many improvements to the buildbot server as the new release dashboard.
- Added a new
test-with-buildbotslabel to test a particular PR with the buildbot fleet. This has reduced considerably the number of reference leaks reported since it was added.
- Organized and hosted the core developer sprint of 2019 in London.
- Mentored and promoted several new core developers:
- Paul Ganssle
- Lysandros Nikolaou
- Brandt Bucher
- Batuhan Taşkaya
- Organization committee of several conferences such as:
- PyCon Spain
- Authored & Co-authored PEPs:
- PEP-delegate for:
- Plenty of new additions to the standard library (I will not list them here to not make this post too big, but you can check them in the “What’s new document” of the different releases.
The size of the Python project and the ecosystem that is affected by the decisions made here means that a lot is asked of Steering Council members. I believe that because of the breadth and depth of his knowledge and the strength of his personality, Pablo would make an excellent addition to the council. His knowledge of so many aspects of both the project and the community means that his input to design decisions would be invaluable.
One way that Pablo can make a unique contribution to the Steering Council is that as a relatively new core developer, he brings a different perspective to balance out the council. It is very rare to find someone like Pablo who can boast he has both a fresh perspective on CPython development and deep expertise in many aspects of the project.
Speaker at different conferences and meetups including PyconSpain, PyLondinium, EuroPython, PyConUs… I am intentionally keeping this short to not make a wall of text, but if someone is interested I can provide links to all the talks + publications.
I work at Bloomberg on the Python infrastructure team in London.
Steering Council Agenda
Here are the priorities (in no particular order) I would like to pay special attention if I get elected:
- Performance: This still is one of the most requested and widespread improvements for CPython and an area that I have spent considerable time. This term serves as an umbrella for many different regions (improvements in raw speed, concurrency story, C-API specific issues, memory usage, wasteful object creation for operations…) and therefore it will imply different solutions for every aspect. Testing for viability and prototyping in every mentioned area often takes a considerable effort than usually cannot be achieved by one single person, and this very often acts as a blocker for many of the ongoing efforts. For this reason, I would like better coordinate existing and new initiatives on these projects and to explore how we can better collaborate with the PSF to sponsor some of them.
- Minimize user impact when upgrading to newer versions of the interpreter (backwards compatibility) (especially important now that PEP 602 has been accepted). This may be especially challenging when considered together with the performance improvements and will require careful consideration of different tradeoffs and to be sure that we align with the interest of the Python community as much as we can.
- Maintainability, reduction and automation of maintenance tasks. Currently, there is a tremendous amount of work required to keep the lights on. These tasks are often very time-consuming and prevent core developers from spending more time reviewing code or producing it (hurting especially “big projects” that require high dedication). These tasks involve aspects like issue triaging, bug triaging, maintenance of several servers (like speed.python.org and buildbot frontend server among others), maintainace of the buildbot fleet (and related tasks) … These tasks also can be very tedious and lead in some cases to burnout so reducing or distributing the burden can be very beneficial. This also may include some improvements in the testing suite to minimize regressions that happen after merge.
- Improve the promotion and mentoring of new core devs and maintaining a diverse and welcoming core development team. I think I can apport a valuable perspective on some ways to improve the promotion process given that I have experienced the process recently both as a core dev being promoted as well as a core dev proposing new people. Having a good process that results in people not losing interest on the long run is crucial to the survivability of the project, to a better reviewing and triaging experience as well as developing “big” new features. This process has been formalized a bit recently but I think it can be further improved.
- Better synchronise with the community and major 3rd part projects. We have recently experienced how some users were suffering some negative experiences due to the fact that some CPython processes were not correctly synchronized with big 3rd party packages (as an example, think of the many synchronization problems regarding Cython and the modification and deprecation of several C-API interfaces).
- Help to define a vision for the Python future. The current steering council is already working on this so this work probably involves ways to make sure that the proposed vision can be executed or help to finish pending work and discussion if needed. This point also includes continuing any pending work and already initiated projects of the current steering committee.
Although these are the main points that I think I can help with, I will be very open to listening to other people’s opinion on what the priorities need to be to adapt as much as possible to the current situation. I am far from knowing everything so I consider fundamental the ability to delegate and update views and priorities when the situation changes or new information appears.
My time and availability
Although I dedicate a considerable amount of my free time my employer (Bloomberg) allows me to spend 20% of my time on Python (this number may increase in the future).
If anyone requires more information or clarifications regarding these points or has other questions, I will be pleased to answer them or provide more extensive information.