I’m nominating myself again for the Steering Council 2023 term.
Although there are a lot of things we can still improve, I am very pleased about the progress that we have been doing together these past years in the Steering Council and the community in general. The 3.11 release has been a very challenging one and we (the core dev team, steering council and community in general) are still learning how to deal with an increased pace in core changes to the interpreter but I am very proud of how we have overcome the many difficulties of the release and the fantastic result that the 3.11 release has been. I am quite sure future releases will be even better and I would love to have your trust in serving you and the community as a Steering Council member for the 2023 term.
Steering Council Agenda
Here are the priorities (in no particular order) I would like to pay special attention to if I get elected for this new term:
- Polish the collaboration model to deal with fast-paced changes: As release manager of 3.11 I know very well the consequences of having to deal with many changes in core areas in a short amount of time. Although these changes are very exciting and can yield fantastic results, as we saw they also carry an increased risk for the release, they expose implicit contracts that users may have been relying on and they can carry some very difficult-to-debug problems. Additionally, as some of you have mentioned, they can make keeping up with some areas of core development much more challenging. Although this is quite a challenge surrounded by compromises I am sure we can still learn a lot and do much better here, and I would try my best to do what we can from the Steering Council if I am elected for another year.
- Look for more contact points with the core team and the community: At the core of the Steering Council mandate there is the idea that the Steering Council should seek consensus among contributors and the core dev team serving only" as a ‘court of final appeal’ for decisions where all other methods have failed.". Even if I think we have been doing well in this area and I am proud of the results we have achieved together I would like to seek more changes for the Steering Council to synchronize with the core development team and the community. In the past year, we have been doing some of these attempts at syncing like the different Q&A sessions we had with the community at Pycon US or with the core dev team (at Pycon US and the core dev sprint) but I still think we can do even better here and try to have an even more collaborative process with the people the Steering Council represents. Representing everyone fairly is something that has been very important for me and I have done my best these past years to do it, but I think we can still improve here and I am excited about the possibility to search for more points of contact if I am elected for another year.
- Improve the user experience of the interpreter (error messages/debugging/profiling…): We all care about performance and cool features and we will surely keep working and caring about that. On the other hand, we have seen the excitement from the community regarding the recent improvements in the recent versions of the interpreter packed regarding better error messages, improved debugging experience and in general better user experience. Although most of the time these changes can be done without problem, sometimes is very easy to forget about these aspects when designing new features or thinking about performance improvements. I would like to ensure that whatever direction Python goes, it doesn’t forget about the fact that having an excellent user experience is something that a lot of our user base cares (from people learning the language to industry experts) and I would like to advocate for this aspect if I am elected for another year.
- Improve the promotion and mentoring of new core devs and maintain 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, in 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.
- Improving transparency and communication: Although there are several challenges and is not always simple, I would like to try to find ways to improve the transparency between the Steering Council and the community. This entails fewer delays between the monthly updates and maybe more chances for receiving more direct feedback from core developers and community members, such as the events we normally held in the core developer sprints. I think this transparency is vital for the Steering Council position in the community and I would love to search for new ways to improve this with the other SC members.
- Performance: I am collaborating half of my work time with the Faster CPython project as I genuinely believe that this is something that will be very impactful in the different user bases that Python has. This work is not only very challenging by itself but has attached many considerations like the impact on backwards compatibility and other balances like the debugging experience. I think is fundamental that we have a holistic view of all these aspects when making big decisions that will have deep ramifications later. For doing this correctly, we need a very healthy vector of communication with different user communities and library authors to ensure we can do the work in a way that doesn’t impact important tools or groups.
Although these are the main points that I think I can help with, I will be very open to listening to other people’s opinions 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.
Work as a core developer
-
3rd most active core developer since my promotion and 2nd since 2019.
-
Core developer since 2018-06-06.
-
Release manager for Python 3.10 and Python 3.11.
-
I work considerably on performance and I collaborate with the Faster CPython project. Some of the performance improvements I have worked recently include the work on Python call inlining, adding support for the perf profiler, GC improvements and many more.
-
Focused on improving the user experience with the better error messages project to improve the error messages and general user experience in CPython. Examples of this work:
-
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 and the guide to the new peg parser.
-
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-buildbots
label 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
- Ammar Askar
- Ken Jin
-
Organization committee of several conferences such as:
- PyCon Spain
- PyLondinium
-
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.
For more information you can check some of my endorsements for from my past nomination. Here are some of them:
Online Presence
Previous nominations:
- Previous nomination for the 2022 term: Steering Council nomination: Pablo Galindo (2022 term) - #2
- Previous nomination for the 2021 term: Steering Council Nomination: Pablo Galindo Salgado (2021 Term)
Conferences
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.
Affiliations
I work at Bloomberg on the Python infrastructure team in London.
My time and availability
Although I dedicate a considerable amount of my free time my employer (Bloomberg) allows me to spend up to 50% of my time on Python.
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.