I’m nominating myself again for the Steering Council 2024 term.
Although there are several things I wish we could have done better, I am very proud of what we have achieved together in the 2023 term of the Steering Council. The past releases have been quite challenging and we are facing several problems that we have not faced before in the project such as dealing with the complications of different views for the typing work, the increasing amount of complexity in the interpreter, clarifying what’s supported and what’s not and dealing with deprecations and removals while ensuring that things don’t break for our users. We are certainly still learning how to deal with all of this but I am very proud of how we have overcome the many difficulties of the recent releases. I am extremely excited of the great changes we are going to bring together in 3.13 and I would love to have your trust and support in serving you and the community as a Steering Council member for the 2023 term.
I also want to thank my current Steering Council colleagues in this term: @brettcannon, @emily, @gpshead and @thomas. I am very lucky to have spent a considerable amount of time this year with you and I have enjoyed a lot facing all these challenges and projects together and I am very proud of what we have achieved
Steering Council Agenda
1. Supporting Performance Improvements
CPython is currently facing massive changes that affect performance in many ways and one of the things I want to commit more is to supporting and enable all of these different improvements. This includes initiatives such as nogil
, the new potential jit
compiler, and other improvements in the VM. As these changes affect the whole project in ways we have not face before, I want to ensure the SC focus will be on ensuring compatibility among these improvements, fostering collaboration, alignment and ensuring that the we go in the same direction.
2. Enhancing Mentoring Programs
Mentoring is a very important aspect to ensure that the project continues going foward. As maintainance costs get higher due to the increased complexity is more important than ever that we have enough people to help. I have mentored several core developers and contributors and I understand the challenges mentoring presents. I want that the SC will continue working towards refining our mentoring processes to better support mentors, mentees, and aspiring core developers. This involves addressing existing gaps, finding ways to attract and encourage contrubtors and actively promoting diversity within the core development team.
3. Empowering Working Groups
In the past SC term we have seen the creation of several working groups within the core dev team such as the docs, typing, and C-API groups. This is very exciting to me and it highlights the potential of organised collaboration. I want the SC to to enable core developers to form and join working groups to ensure that our high level projects are aligned and to help with processes. In particular I wish that by aligning the Steering Council with these groups, we can delegate responsibilities, streamline processes that the SC currently takes a lot to do, and leverage subject matter expertise in the PEPs and proposals that can benefit the most from a (hopefully coherent ) voice from the working groups.
4. Core Dev in Residence Support
I think the core dev in residence program is being quite a great success. I am very happy what we have achieved so far in the previous SC terms and I think that ensuring financial support for the current Core Dev in Residence positions is critical for maintaining project momentum. I want to SC to advocate for continued funding and explore opportunities for additional support together with the PSF leadership. Additionally I want that the SC aligns the working of the different core dev in residences to ensure that the project can cope succesfully with the complexity of the future performance work (nogil, jit…etc).
5. Improved Communication and Transparency
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. I do understand that when the SC takes a lot of time to inform the community about what is going on this is a frustrating experience for everyone, and specially for those that are waiting on the SC decision to continue their work. I want the SC to explore new ways to improve the communication of certain aspects with the community and find ways to deliver results faster (maybe by delegating some tasks, leveraging people to help with note-taking and reports). Additionally I recognise that some of the SC decisions are not as clear as people want and we can work to improve this situation. 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.
6. Improve the user experience of the interpreter.
This entails supporting projects such as improvements of 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.
As a small and slighly unrelated note, I also want to help to get some of those cool logos such as the 3.10 release logo and the 3.11 release logo back.
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.
- 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.
- I created and maintain one of the most popular memory profiles for Python: memray.
- I maintain several Python debuggers and stack analyser tools such as pystack.
- Made several events to demystify core development and the release process and get closer to user such as the 3.10 release stream party and the 3.11 release stream party.
- 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.
- 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.
- Add checks for ABI stability
- 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
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.