Nominated by …
From the perspective of the Council’s mandate
I’m nominating Yury because I strongly believe that asyncio is crucial for the future of Python. Next to Guido and Andrew Svetlov, he is the most qualified person to represent asyncio in the steering council. Yury and Elvis Pranskevichus have built their own company and main product EdgeDB on top asyncio. The fact not only makes him highly qualified to drive asyncio, but also mutually motivated to keep asyncio fast and reliable. The council can also benefit from his expertise as small business owner who makes a living of Python and contributes back.
Yury has been a core developer for 5 years and a driving force of Python’s asyncio framework. He is one of the few engineers on the core team that have a deep understanding of Python’s next generation networking layer. Yury’s contributions include countless improvements, performance tweaks, and bug fixes for asyncio, coroutines improvements related to asyncio like async/await syntax, async generators, and async comprehensions. He also designed and implemented context vars. He is the author or co-author of six PEPs (362, 492, 525, 530, 550, 567).
Additionally Yury runs a small company out of Toronto. For the companies main product, he developed and open sources uvloop, a high performance event loop, and asyncpg, a fast Postgres driver. Yury gives regular talks about asyncio at conferences (amongst others PyCon Canada, PyCon US, PyCon Russia, EuroPython).
Magic Stack (Yury is co-founder and co-owner)
An update by Yury:
Thank you, Christian. I’m humbled by the fact that I’m nominated among people like Brett and Guido. I’d like to expand a little on what I think I can bring to the table.
As a Python core developer I want Python to stay relevant. That requires the language, the ecosystem around it, and the community that makes it to constantly evolve. Here are a few areas that I personally care about:
Community. Guido has been spearheading the movement to have a more diverse and welcome core development team; we need to do more of that.
Tools and development experience. Packaging, typing, better error reporting, new language features, if needed.
Performance. Python is used everywhere in pretty much any company/product. However, I hear rather frequently that many companies are switching to other languages because Python is slow for them. This must be addressed.
Christian is right that one of my key expertise areas is async/await and asyncio. That’s something I’ve been focused on for the past few years and the result is a number of language-level additions to the language: async/await syntax, asynchronous generators, context variables. I’ve been committing significant amount of time managing asyncio development and the decisions on its architecture and feature set.
Moving forward, one of the key realizations is that asyncio != async/await. There are other frameworks and libraries (like Nathaniel’s Trio) that challenge the design of asyncio, and we need to pay careful attention to them to: (a) improve asyncio; (b) improve language support, if necessary. This will ensure that we evolve Python’s async/await infrastructure in the right way.
This is another area of my expertise. I dedicated a lot of time learning how JIT engines and compilers work and have many ideas on how we can speed up Python. I’ve implemented many optimizations in CPython, as well as proposed a few that aren’t yet implemented, such as opcode cache.
I’m confident that we can improve the performance a lot. We need to have a clear roadmap on how exactly we want to approach this problem. We need to be able to organize and accept contributions from big companies like Microsoft, Facebook, Dropbox, Google, etc. I know many are interested to help.
I’ve been spending about 2 months per year working on Python for the past three years. I expect 2019 to be no different.