PyCon US 2021 was a blast

I attended PyCon US this year. Finally, I made it even though it was "just virtual". Here is my summary of two fantastic days filled with lots of great talks and inspiring conversations.

As many other events and meetups, PyCon US was held as a virtual conference this year too. I always wanted to attend it during the last two and a half decades while I have been using Python as a programming language. Sadly, it was never affordable to me personally, and I never succeeded to talk one of my employers into sending me to PyCon US. This year I didn’t think twice if I want to buy a ticket.  And it was more than worth the money and being up late because of the different time zones. The conference days started at 17:00 CET and ended long after midnight. Not the easiest schedule for an early riser like me. 🤷

Here is a curated list of talks I attended and found rather impressive. Of course all the other talks are available on YouTube, too.

Day 1 – 14th of May

Keynote by Robert Erdmann covering Operation Night Watch at the Rijksmuseum in Amsterdam

If you just want to pick just one of the talks I am linking to, then pick this one!

This whole project is so impressive and mind-blowing. They are digitizing the whole image with round about 9000 individual 100 megapixel images. The process is highly automated and steered by machine learning. And of course, they are using Python in almost every step. I think the only place where they have to rely on something else is the software to remote control the Hasselblad camera they are using. Watch the video! Visit the site of the project. It is worth the time. I definitely want to visit Amsterdam and the Rijksmuseum later this year or in 2022.

KEYNOTE / Robert Erdmann
Prior to earning his Ph.D. from the University of Arizona in 2006, Robert Erdmann started a science and engineering software company and worked extensively o…
KEYNOTE / Robert Erdmann www.youtube.com
Operation Night Watch – Rijksmuseum
Operation Night Watch - Rijksmuseum www.rijksmuseum.nl

Testing stochastic AI models with Hypothesis

I never heard of hypothesis and property-based testing before. But the description of the talk sounded like it might be something I have been looking for a while. It solves a particular testing problem, that is always present in machine learning, but it is also helpful outside this area to stress your tests with more random data.

TALK / Marina Shvartz / Testing stochastic AI models with Hypothesis
Over the years, testing has become one of the main focus areas in development teams, a good feature is a well tested one. In the field of AI this is many tim…
TALK / Marina Shvartz /  Testing stochastic AI models with Hypothesis www.youtube.com
HypothesisWorks/hypothesis
Hypothesis is a powerful, flexible, and easy to use library for property-based testing. – HypothesisWorks/hypothesis
HypothesisWorks/hypothesis github.com

pyKnit: maths tools for knitters

I had to attend this talk. My wife is a passionate knitter too. And she is using an old virtual machine with Windows XP on it to run an outdated program to calculate her knitting projects. I was keen to learn if PyKnit by Terri Oda might be a basis to built something myself. Let me sum it up, it is on my list of weekend projects.

TALK / Terri Oda / pyKnit: math tools for knitters
Knitting patterns are effectively code that gives you a physical object if you execute them. Customizing and designing patterns takes a lot of math to get si…
TALK / Terri Oda / pyKnit: math tools for knitters www.youtube.com
terriko/pyknit
A set of tools for knitters to create charts and eventually more. – terriko/pyknit
terriko/pyknit github.com

From 3 to 300 fps: NES Emulation in Python and Cython

This was a fun talk by James Murphy. I really liked his way to present the topic, the slides where great, and it is impressive how he speed up the application from 2fps to 300fps with a little Cython code. Cython is a technology I wanted to try for years and never made it. May be…

TALK / James Murphy / From 3 to 300 fps: NES Emulation in Python and Cython
It is sometimes asserted that “Python is a real bad choice for any kind of real-time system”. When I first got my Python NES emulator to boot, only for it to…
TALK / James Murphy / From 3 to 300 fps: NES Emulation in Python and Cython www.youtube.com
jameskmurphy/nes
A Nintendo Entertainment System (NES) emulator in Python and Cython. – jameskmurphy/nes
jameskmurphy/nes github.com
cython/cython
The most widely used Python to C compiler. Contribute to cython/cython development by creating an account on GitHub.
cython/cython github.com

VSCode, Pylance and Typing

Because of diving deeply into wonderful tools like Pydantic, FastAPI and Beanie, I am currently very interested into all things covering typing in Python. Just a week before PyCon US Microsoft announced the first official release of Pylance the new default language server for VSCode and Python.

Pylance: our new and improved Python experience in VS Code
Get a glimpse of the most performant and user-friendly editing experience for Python in VS Code ever. The newest version of the extension dramatically improv…
Pylance: our new and improved Python experience in VS Code www.youtube.com

Microsoft recently became a visionary sponsor of the Python Software Foundation. So, they had a rather big virtual booth and many people available to talk too. Of course also covering Pylance and typing in Python. They also offered some excellent talks outside the official tracks, sadly I have no links to share with you.

Day 2 – 15th May

Day 1 was very chaotic for me. I jumped between the tracks, tried to visit the booths and participate in the discussions at the virtual table. On day 2 I had a plan, a checklist and some appointments. The result was, that I had as much input as on day 1, but I didn’t fell totally exhausted at night. 😀

Keynote by Akshay Sharma

Day 2 kicked of with another inspiring keynote. This time Akshay Sharma covered the use of AI technologies in healthcare and of course how Python is used in this field and his company Sharecare. These days many keynotes and talks are about doing marketing, using AI to track people, burn our climate for cryptocurrencies and so on. It felt so refreshing to see, how technology can be used for serving people and solving real-world problems. I felt inspired!

KEYNOTE / Akshay Sharma
Akshay Sharma is executive vice president of artificial intelligence (AI) at Sharecare, the digital health company that helps people manage all their health …
KEYNOTE / Akshay Sharma www.youtube.com

Packaging Python in 2021

Let’s be honest. Packaging in Python was a mess. I never wanted to dive into this even though I have been using Python for round about 25 years now. For my personal projects poetry solves all the package management and packaging requirements I have. In his talk Jeremy Paige gave a good overview about modern packaging tools in Python besides poetry and how things are evolving towards a single pyproject.toml file. Besides the talk, the active chat with the other attendees was also packed with tons of information.

TALK / Jeremy Paige / Packaging Python in 2021
Five years after the inception of pyproject.toml the Python packaging landscape is now richer than ever. Despite all the new choices when setting up a projec…
TALK / Jeremy Paige / Packaging Python in 2021 www.youtube.com

The Road to Pattern Matching in Python

I think this talk was the one I appreciated most on day 2 of the conferences. I love functional programming. I always appreciated to use Scheme and Lisp in university. Likewise, I am overstretching the functional parts of Python and JavaScript in my business projects sometimes. And I always catch up on what is happening in Elixir.

Starting with Python 3.10 it receives an implementation of the best feature of Elixir – (structural) pattern matching. Forget about your initial association with regular expressions and also resist the initial urge to say “Wow, Python got a switch statement now.” Pattern matching is so much more! Watch the video. Tobias Kohn did a wonderful job to explain it. For me, it is the one and only reason to switch to Python 3.10 on release day.

TALK / Tobias Kohn / The Road to Pattern Matching in Python
Pattern matching is a great and proven tool for programmers. However, can we also assimilate and integrate it into Python? This talk tries to give an answer …
TALK / Tobias Kohn / The Road to Pattern Matching in Python www.youtube.com

Python Performance at Scale – Making Python Faster at Instagram

The Instagram engineering team has been blogging and talking about the usage of Python at Instagram from time to time. I really appreciate these blog posts and talks because I can use them as an argument in the “Python is slow” discussions I have to face from time to time. This time Dino talks about improving the Python runtime, using Cython and what they are doing at Facebook to increase the performance in their Python projects.

In general, it is fascinating that Microsoft, Facebook and Google are investing into making Python faster. Microsoft hired Guido van Rossum, and he started a project to make faster, too. I’m really enjoying all the effort put into my preferred programming language.

TALK / Dino Viehland / Python Performance at Scale – Making Python Faster at Instagram
Python is used in a large number of web sites where the performance of the web tier is a significant cost. There are multiple ways to improve the performance…
TALK / Dino Viehland / Python Performance at Scale - Making Python Faster at Instagram www.youtube.com

Protocol: the keystone of type hints

I mentioned it before. I am looking into all this typing stuff of Python a lot. Likewise, I love how Pydantic and FastAPI are using it to create extra value for your application. In this talk Luciano talks about Protocol, which was introduced to solve a typical problem of typing systems.

TALK / Luciano Ramalho / Protocol: the keystone of type hints
The static type system supporting type hints in Python is becoming more expressive with each new PEP, but PEP 544–Protocols: Structural subtyping (static du…
TALK / Luciano Ramalho / Protocol: the keystone of type hints www.youtube.com

0 to production-ready: a best-practices process for Docker packaging

Containers are everywhere and building a great container can be challenging. I have read some of Itamar’s articles about it in the past, but in this talk he gave a good overview and I can highly recommend his site about creating production-ready Docker images for Python. It is my go-to address to check if I have missed something.

TALK / Itamar Turner-Trauring / 0 to production-ready: a best-practices process for Docker packaging
You know the basics of packaging your Python application for Docker, but do you know enough to run that image in production? Bad packaging can result in secu…
TALK / Itamar Turner-Trauring / 0 to production-ready: a best-practices process for Docker packaging www.youtube.com
Production-ready Docker packaging for Python developers
Your guide to creating production-ready Docker images.
Production-ready Docker packaging for Python developers pythonspeed.com

Getting an Edge with Network Analysis with Python

This was an introductory talk on network analysis (using Python). I strongly agree with Alon that this is a topic you should have some knowledge in. All the data-driven companies are using it to derive information about us and our relationships to others and topics.

TALK / Alon Nir / Getting an Edge with Network Analysis with Python
Networks are all around us. While Facebook and Twitter are the obvious examples, every time we shake hands, drive from point A to B, push code to github, che…
TALK / Alon Nir / Getting an Edge with Network Analysis with Python www.youtube.com

An Introduction to FastAPI

FastAPI is the hot solution to build fast APIs in less time in the Python community. Thomas gave an introduction to it and even though I am using it for half a year now, I learned some news things about.

TALK / Thomas Jewitt / An Introduction to FastAPI
With the skyrocketing popularity of Python as a language for web development, a wide array of tools now exist for the creation and documentation of REST APIs…
TALK / Thomas Jewitt / An Introduction to FastAPI www.youtube.com

Python Steering Council and PSF Community Address by Ewa Jodlowska

Day 2 was finished with a keynote by the Python Steering Council.

KEYNOTE / Python Steering Council / C. Willing, T. Wouters, B. Cannon, P. Galindo Salgado, B. Warsaw
Carol WillingThomas WoutersBrett CannonPablo Galindo SalgadoBarry WarsawElected as prescribed in PEP 8016, the Python Steering Council is a 5-person committe…
KEYNOTE / Python Steering Council / C. Willing, T. Wouters, B. Cannon, P. Galindo Salgado, B. Warsaw www.youtube.com
KEYNOTE / Python Software Foundation Community Address / Ewa Jodlowska
Ewa Jodlowska, Executive Director addresses the community and announces the Community Service Award recipients
KEYNOTE / Python Software Foundation Community Address / Ewa Jodlowska www.youtube.com

The Platform

The organizers picked Hubilo as a platform for this event. A pretty good choice from my point of view. Everything worked. The platform was easy to use. The only thing that was somewhat overwhelming for me was the sheer mass of opportunities to see something or get in touch with people. 

You had the normal 4-track-conference on one side, besides that, you had the expo hall with extra sessions offered by the sponsors like Google, Microsoft, Facebook, Bloomberg, etc. In the lounge you could network at 10-20 virtual tables with groups of different sizes.

It just worked. I learned a lot. But it felt even tighter than being on a normal conference with hallway talks, an expo area and the normal conference rooms. Especially the first day was totally overwhelming but besides the talks, I had some really great chats.

Summing things up

PyCon US was a blast. I hope for more virtual events like that in the future. In many ways it is a more appealing format to me, then to be onsite. I am not so much the networking and socializing guy. I prefer good information and just a few chats. Next up on my list are DjangoCon Europe and MongoDB.live.