PyCon US 2021
2021-05-14..2021-05-15
-- online --
PyCon US ·
[PyCon US 2008, PyCon US 2020, PyCon US 2021, PyCon US 2022, PyCon US 2023, PyCon US 2024, PyCon US 2025, PyCon US 2026]
who it's for
python developers, data engineers, machine learning engineers, site reliability engineers, open source maintainers, technical writers
topics
operationalizing Jupyter notebooks with Papermill; Scalene CPU+GPU+memory profiling; Docker packaging for Python apps; PyTorch NumPy compatibility work; pydantic runtime type checking; building Rust native extensions for Python; Dask-SQL for scalable data engineering; property-based testing with Hypothesis; FastAPI web service development; Python packaging and PyPI workflows
| title | author | length |
|---|---|---|
| KEYNOTE – Robert Erdmann | Robert Erdmann | 41m |
Captures Rembrandt’s Night Watch at 5 micrometer resolution producing 717 gigapixels from 8,439 100MP photos, ~23 seconds per shot. Builds an orbital frame… | ||
| KEYNOTE – Saron Yitbarek | Saron Yitbarek | 30m |
Community-building lessons arrive as particulars: a weekly Wednesday 9pm Twitter chat that runs for one hour with three rules — be supportive, be honest, be… | ||
| KEYNOTE – Akshay Sharma | Akshay Sharma | 28m |
Sharecare and doc.ai ship phone apps (Passport, Serenity, NetRunner, Genewall) and claim Python notebooks become the single source of medical knowledge — send… | ||
| KEYNOTE / Python Steering Council | C. Willing, T. Wouters, B. Cannon, P. Galindo Salgado, B. Warsaw | 01h 00m |
A five person council explains concrete work: weekly meetings, a 5-person council governance by PEP 8016, and a focus on maintenance over speculative rewrites… | ||
| KEYNOTE / Python Software Foundation Community Address | Ewa Jodlowska | 20m |
Python hits its 30th anniversary while the PSF marks 20 years, announces concrete hires and calls: a director of resource development, a developer in… | ||
| Testing stochastic AI models with Hypothesis | Marina Shvartz | 25m |
Uses the Hypothesis library to generate and shrink failing examples, stores failing cases in a local database for repeatable random tests, and combines… | ||
| Creating extensible workflows with off-label use of Python | Benjy Weinberger | 27m |
Claims that Python type annotations drive static rule graphs, that async/await coroutines yield runtime dependencies via get and multi‑get for parallelism, and… | ||
| Narrative-focused video games development with Ren'Py an open source engine | Susan Shu Chang | 28m |
Shows concrete engineering inside Ren'Py: OS handling, cross‑platform save format, and memory optimization examples tied to the engine source at… | ||
| What we learned from Papermill to operationalize notebooks | Alan Yu, Vasu Bhog | 26m |
Claim: papermill compatibility plus new hooks make notebooks operational rather than just documents. Implementation details: papermill python API and CLI for… | ||
| From NumPy to PyTorch, A Story of API Compatibility | Randall Hunt, Mike Ruberry | 26m |
PyTorch claims practical NumPy compatibility by implementing hundreds of NumPy operators plus hardware-accelerator and autograd support, but not all thousand… | ||
| Writing Good Documentation for Developers | Meredydd Luff | 23m |
Developer docs are your UI, marketing, and product definition: an Anvil case shows Python in the browser and server, a drag‑and‑drop IDE, and hosting, and led… | ||
| Reproducible and maintainable data science code with Kedro | Yetunde Dada | 26m |
Claim: kedro turns messy Jupyter experiments into reproducible, maintainable, modular pipelines by enforcing config, a data catalog, and a pipeline abstraction… | ||
| pyKnit: math tools for knitters | Terri Oda | 25m |
An open source Python library called pyKnit implements the actual knitting math: swatch-to-stitch conversions, integer-only stitch/layout solving, and shaping… | ||
| From 3 to 300 fps: NES Emulation in Python and Cython | James Murphy | 26m |
A working Python NES emulator starts at about two to three frames per second and after porting hot inner loops to Cython with a few native type annotations it… | ||
| Data Processing on Ray | SangBin Cho | 27m |
Ray adds concrete systems work: locality-aware scheduling and admission control so tasks aren’t placed where inputs won’t fit; a decentralized memory manager… | ||
| Learning python during lockdown: a surprising bonding experience with my child | Shemra Rizzo | 25m |
Mentoring a teen through Python 101 during lockdown turns into a practical playbook: meet four times a week, sketch problems before coding, write tests to… | ||
| 0 to production-ready: a best-practices process for Docker packaging | Itamar Turner Trauring | 25m |
A concrete iterative process appears: first get a working image, then fix security (for example don't run as root and remove build-time secrets), then automate… | ||
| Event-driven applications: Apache Kafka and Python | Francesco Tisiot | 26m |
Shows Apache Kafka used from Python with runnable Jupyter notebooks and the kafka-python client, creating topics, producing and consuming JSON records… | ||
| Scalene: A high-performance, high-precision CPU+GPU+memory profiler for Python | Emery D. Berger | 26m |
Scalene is a CPU+memory+GPU profiler for Python that claims high precision with low overhead by combining timer-driven sampling, virtual-clock inference, and… | ||
| Oops! I Became an Open Source Maintainer! | Mariatta Wijaya | 26m |
First contribution in 2016 and within a year gaining commit rights to a couple projects and shortly after to CPython, involvement centers on code review… | ||
| Patterns of ML Models in Production | Simon Mo | 26m |
Provides concrete patterns — pipeline, ensemble, business logic and online learning — backed by 100+ user interviews, names the real pain points (scaling one… | ||
| Restarting Pyjion, a general purpose JIT for Python- is it worth it? | Anthony Shaw | 24m |
Project restarts Pyjion as pidgin that compiles CPython 3.9 bytecode to machine code via uses .NET 5 RyuJIT, installs with pip installable and runs on Linux… | ||
| Multispectral Image Restoration with GAN | María José Meneses | 19m |
Presents a restoration pipeline that uses a trained GAN (implemented in PyTorch) to inpaint random-size, random-location corruptions in 4-channel multispectral… | ||
| Distributed Tracing with OpenTelemetry | Mauricio Vásquez | 27m |
A demo shows how to instrument a simple Python HTTP client-server and database flow using OpenTelemetry Python, exporting traces to a local Jaeger backend. It… | ||
| The Zen of Python in Spanish | Rafael Santos | 26m |
A Spanish-language talk that translates and explains each line of PEP 20 (The Zen of Python), giving concrete code examples and side-by-side explicit vs… | ||
| GitHub Classroom: A Simple Tool for Teaching Python | Luis Conejo | 26m |
GitHub Classroom is presented as a way to move from a single shared repo to per-student private repos per assignment, preventing accidental edits to templates… | ||
| When to Use Native Extensions in Rust: Accessible, Safe Performance | Eric Arellano | 22m |
Use native Rust extensions when profiling shows the critical path still dominates after optimizations and concurrency testing. Rust gives near-C/C++… | ||
| Packaging Python in 2021 | Jeremy Paige | 23m |
Claims that pyproject.toml is now a final standard and that setup.py is becoming unnecessary, shows concrete examples of declaring a build backend and a… | ||
| No, Maybe and Close Enough: Using Probabilistic Data Structures in Python | Simon Prickett | 26m |
Shows concrete trade-offs: use Hyperloglog to approximate distinct counts (100000 items produce ~99,565 with about 12k of memory vs a set at ~100000 and… | ||
| The magic of "self": How Python inserts "self" into methods. | Sebastiaan Zeeff | 25m |
Claim: Python inserts the instance by making plain functions into descriptors whose __get__ creates a bound method so the instance becomes the first arg. Tools… | ||
| PyTesting the Limits of Machine Learning | Rebecca Bilbro, Daniel Sollis, Mark, Patrick Deziel | 27m |
Shows concrete techniques: use scikit‑learn Estimator/Transformer, pipelines and FeatureUnion to reduce test surface; fix random_state to make runs repeatable… | ||
| Python Performance at Scale - Making Python Faster at Instagram | Dino E Viehland | 26m |
Shows concrete changes: a production Cinder fork of CPython with immortalized objects to cut copy‑on‑write, hot-path wins from inline caching and eager async… | ||
| Dask-SQL: Empowering Pythonistas for Scalable End-to-End Data Engineering | Adam Breindel | 26m |
Claims that Python users can run SQL over enterprise datalakes without JVM tooling and demonstrates it with three concrete demos: dask-sql executes SQL… | ||
| The Road to Pattern Matching in Python | Tobias Kohn | 26m |
Explains why pattern matching becomes a new statement with match and case are soft keywords, shows the concrete one-line area example that both selects branch… | ||
| Intro to Pydantic, run-time type checking for your dataclasses | Alexander Hultnér | 26m |
Pydantic enforces runtime type checking for dataclasses and BaseModel classes so invalid inputs are rejected immediately and errors name the field and index… | ||
| When is an exception not an exception? Using warnings in Python | Reuven M. Lerner | 26m |
Shows concrete APIs and behaviors: uses warnings.warn with categories and stacklevel to point to the caller, explains built-in categories and why deprecation… | ||
| More Fun With Hardware and CircuitPython - IoT, Wearables, and more! | Nina Zakharenko | 27m |
Shows working projects: a Bluetooth-controlled LED jacket built with an nrf52 feather and 3D‑printed hexagons, a battery‑powered social‑energy lanyard whose… | ||
| Secure Software Supply Chains for Python | Dustin Ingram | 26m |
PyPI hosts nearly 300,000 projects and has removed more than 3,000 malicious libraries after incidents; a dependency confusion variant previously hit Apple… | ||
| Static Sites with Sphinx and Markdown | Paul Everitt | 22m |
Sphinx now accepts Markdown via MyST and the myst-parser, so a Sphinx site can be authored in .md files while still using directives, YAML front matter, and… | ||
| Using Declarative Configs for Maintainable Reproducible Code | Jonathan Striebel | 24m |
Claims that declarative configs let large experiments stay maintainable and reproducible by separating parameters, verifying usage, and migrating old configs… | ||
| Large Scale Data Validation (with Spark and Dask) | Kevin Kho | 26m |
Compares Great Expectations (pandas + Spark) and Pandera (pandas only), shows tradeoffs: Great Expectations gives data docs and detailed failure output and… | ||
| Protocol: the keystone of type hints | Luciano Ramalho | 28m |
PEP 544 enables structural subtyping via typing.Protocol, letting static checkers verify duck‑typed interfaces. Uses typeshed annotations and mypy to reproduce… | ||
| Gradual Typing in Practice | Maggie Moss | 27m |
Concrete claims and mechanics: Pyre finds real incompatible returns as types are added, Instagram moves files into strict mode to prevent regressions, and… | ||
| Your app is async so take advantage of it for development! | John Belmonte | 26m |
An asyncio app runs an in-process HTTP/websocket server that exposes a remote REPL and remote canvas visualizations implemented as Python draw methods borrowed… | ||
| Getting an Edge with Network Analysis with Python | Alon Nir | 26m |
Uses Python and networkx to load a public Venmo dataset, build a 700k-scale directed graph, extract a 40-node / 78-edge subgraph and isolate a 18,360-node… | ||
| What are quantum computers, and how can we train them in Python? | Josh Izaac | 27m |
Python code shows how to build parameterized quantum functions using PennyLane (and mentions Qiskit, Cirq), run them on a local simulator or cloud hardware… | ||
| An Introduction to FastAPI | Thomas Jewitt | 24m |
FastAPI claims to let you build REST APIs with minimal code while actually generating interactive docs and validation. It uses Starlette for async serving… | ||
| Python: The Next Generation | Meg Ray | 26m |
Python reaches more secondary students than ever, backed by PSF-funded projects and 2019 education grants and concrete tools: a new landing site… | ||
| Generate buzz with realtime FM audio synthesis | Łukasz Langa | 29m |
Real time FM audio synthesis implemented in pure Python now runs live: MIDI in → Python generator voices → miniaudio playback → BlackHole virtual driver →… | ||
| Statistical Typing: A Runtime TypingSystem for Data Science&Machine Learning | Niels Bantilan | 22m |
Proposes statistical typing as a runtime typing system that extends bool/str/float with deterministic and probabilistic constraints, implements schemas as… | ||
| Unexpected Execution: Wild Ways Code Execution can Occur in Python | Graham Bleaney, the_storm | 25m |
Title promises surprises and delivers specifics: concrete exploits, numbers, and fixes. Shows pickle deserialization creating exec payloads, input() in Python… | ||
| Optimizing Data Retrieval with Python Celery | Jenna Conn, Hannah Cline | 19m |
Generic web UI hits browser limits of six concurrent connections so a dashboard with ten visualizations stalls. The team builds a prototype using Python Celery… | ||
| Data Pre-processing in MindSpore | Eric Zhang | 38m |
MindData presents a concrete system: an asynchronous data graph that pipelines preprocessing, uses parallel IO (master/worker reads six files in parallel), and… | ||
| Debugging Performance | Jérôme Vieilledent, Sümer Cip | 44m |
Profile-driven debugging of a Django app uses Blackfire probe+agent+browser companion to collect wall/cpu/io/memory dimensions, shows a model initializer… | ||
| SPONSOR WORKSHOP / Mike, Joe, Ryan Soley, Sri / Capital One | Mike, Joe, Ryan Soley, Sri | 29m |
Open source rubicon-ml provides a Python logging library plus a dashboard and publishing workflow that captures hyperparameters metrics dataframes and… | ||
| CICD 101 | Angel Riviera | 37m |
Shows a working CI/CD pipeline that uses CircleCI config.yml and the docker orb to build, test, and push a Docker image to Docker Hub. Uses a simple Python… | ||
| SPONSOR WORKSHOP / Anthony Shaw / Microsoft | Anthony Shaw | 45m |
Concrete architecture and runnable examples: a sample project with deploy scripts shows App Service instances (B1 to P3v3, up to 30), app service plans, and… | ||
| SPONSOR WORKSHOP / Seth Larson / Elastic | Seth Michael Larson | 39m |
Demonstrates using Elastic App Search with a Django backend and the new python enterprise-search client, including a GitHub workshop repo and runnable… | ||
| SPONSOR WORKSHOP / Zhiyi Ma, Shagun Sodhani / Facebook | Zhiyi Ma, Shagun Sodhani | 38m |
Platform describes a runnable pipeline that hosts submitted model code on AWS SageMaker using torchserve and Docker then runs batch evaluations across datasets… | ||
| SPONSOR WORKSHOP / Paul Prescod / SalesForce | Paul Prescod | 25m |
Shows how a YAML-based DSL called Snowfakery is implemented as a Python interpreter, with concrete code hooks for YAML-based DSL, Jinja templating and Faker… | ||
| SPONSOR WORKSHOP / Charlie Engelke/ Google | Charlie Engelke | 43m |
Claims that serverless code runs only on demand and must keep state in external stores and then demonstrates it by building a working student… | ||
| SPONSOR WORKSHOP / Shay DeWael and Alissa Renz /Slack | Shay DeWael, Alissa Renz | 39m |
Builds a working Slack app with Bolt for Python, enabling socket mode, configuring scopes and tokens, installing into a dev workspace, and wiring event… | ||
| Functional Python | Mike Müller | 02h 28m |
Hands-on Jupyter notebooks use JupyterLab with conda and the codebase imports more_itertools, toolz, functools, itertools, operator; notebooks and HTML/PDF… | ||
| Magical NumPy with JAX | Eric J. Ma | 02h 24m |
Claim: write idiomatic NumPy and get autodiff, JIT and parallelism without learning a new array library. Demos use the NumPy‑compatible JAX API with vmap… | ||
| Hands-On Regular Expressions in Python | Trey Hunner | 02h 35m |
A hands‑on walkthrough uses Python’s re module to show wholegood details: re.search/re.sub and re.findall/re.finditer behavior, raw strings r'...', anchors… | ||
| A complete Beginner's Guide to Python by Making Simple Games | Al Sweigart | 02h 33m |
Three hours of hands‑on Python for absolute beginners that actually builds three small programs: Guess the Number, a Magic 8 Ball clone, and a Dice Rolling… | ||
| Dashboards for All | Ramon Perez | 03h 41m |
Step-by-step reconstruction shows exact claims and tools: using bokeh, holoviews, panel (plus geopandas/geoviews) to build static and interactive dashboards… | ||
| From Spreadsheets to DataFrames | Ryan S McCoy | 02h 52m |
Quick yes or no: this walks an Excel user through concrete steps not platitudes. It claims to replace tedious spreadsheets by actually downloading SEC data… | ||
| Python Packaging Demystified | Bernát Gábor | 02h 36m |
Session shows how packaging actually works: pyproject.toml and PEP 517 for isolated builds, concrete use of flit, setuptools and pip as front- and back-ends… | ||
| (Serious) Time for Time Series | Marysia Winkels | 01h 43m |
Uses Pandas to parse timestamps (pd.to_datetime), set the datetime index and resample hourly/monthly/daily, create lag features with shift, and smooth with a… | ||
| Python Unit Testing with Pytest and Mock | Moshe Z | 02h 13m |
Step‑by‑step tutorial that actually runs Pytest and mock examples inside Jupyter via ipytest inside Jupyter showing concrete failing assertions (early… | ||
| Hacking Dask: Diving Into Dask;s Internals | James Bourbeau, Julia Signell | 02h 18m |
Shows Dask internals with runnable specifics: task graphs are created and optimized (fuse, inline, cull), the distributed scheduler and workers run via… | ||
| Introduction to Property-Based Testing | Zac Hatfield-Dodds | 01h 23m |
Introduction teaches Hypothesis with concrete code, not just theory: it runs the @given decorator, uses st.integers().filter(lambda b: b != 0) and pytest… | ||
| Writing Documentation with Sphinx and reStructuredText | Mariatta | 02h 28m |
Walks through creating a docs project with sphinx-quickstart, editing conf.py, and running make html or sphinx-autobuild to see live output. Shows enabling… | ||
| Effective Data Visualization | Husni Almoubayyed | 02h 23m |
Hands-on tutorial that uses seaborn, matplotlib, plotly and sklearn to show what actually changes a figure: histogram bin choice vs kernel density estimation… | ||
| Practical Deep Learning for Data Scientists | Andrea, Josh | 02h 26m |
Hands-on workshop that builds an animal classifier using PyTorch on GPU using Domino and the Snapshot Serengeti images, shrinking classes to four and sampling… | ||
| Introduction to Decorators: Power UP Your Python Code | Geir Arne Hjelle | 02h 32m |
The session shows concrete code not handwavy theory: it demos functools.lru_cache to cache a slow square, builds a before_and_after decorator, a do_twice… | ||
| A Hands-On Introduction To Multi-Objective Optimization | Eyal Kazin | 33m |
Hands-on material uses Git-hosted Jupyter notebooks and Google Colab to solve a knapsack: minimize bag weight while maximizing value, with code that finds… | ||
| Education | André Roberge, Daniel Chen, Reuven M. Lerner, Marley Kalt, Chiin-Rui Tan, Kirby Urner | 02h 00m |
Session reports specific tools and outcomes: a traceback helper called python -m friendly explains errors in English and French, covers ~200 tested cases, and… | ||
| Trainers | SherAaron Hurt, Reuven M. Lerner, Sebastiaan Zeeff, Fernando Masanori, Sumana Harihareswara, Miki Tebeka, Tadeh Hakopian | 02h 11m |
A two-hour summit catalogs concrete tactics for remote Python training: role splits like a supporting instructor role and helpers, a scaffolding cloud server… | ||
| Typing | Maggie Moss, David Foster, Pradeep Kumar Srinivasan, Carl Meyer, Jia Chen, Jukka Lehtosalo | 03h 40m |
Conference session collects concrete work: Python 3.10 gains union-with-| and teams debate a postfix ? for Optional; a PyPI tool tricast validates JSON against… | ||
| Maintainers | Brian Douglas, Cheuk Ting Ho, Juanita Gomez, Katherine Michel, May Ireland, Melissa Weber Mendonça, Rose Judge | 03h 40m |
Collection of concrete maintainer tactics and failures: GitHub Actions recipes that run Lighthouse, draft releases with release-drafter, and an take-action… | ||
| Lightning Talks 1 | Dustin Ingram, Lorena Mesa, André Roberge, Bernát Gábor, Brett Cannon, Cheuk Ho, Jason C. McDonald, Jürgen Gmach | 01h 00m |
Fast specifics: Friendly improves tracebacks with "where/why/what" queries, Jupyter support and French translations; tox 4 is three times faster and adds wheel… | ||
| Lightning Talks 2 | Dustin Ingram, Lorena Mesa, Aakanksha Chouhan, Cristián Maureira-Fredes, Dianing Yudono, Gregory M. Kapfhammer | 58m |
Short lightning slate: concrete claims and tools, not platitudes. Expect Moulding Data for ML: three cycles and bias corrections, more data ≠ better data, a… | ||
| Introduction to Sprinting Workshop | Chalmer Lowe | 01h 37m |
Hands-on workshop that actually teaches how to contribute: set up git and GitHub, git clone to fork and clone a codeless repo of poems, edit, git add commit… | ||
| nothing matches | ||