@programme

Programme

4-6 December 2026 at Gateway Pavilion, Fort Mason Center. Sessions run from 10:00 to 17:20 each day (Pacific time).

sessions
33
speakers
34
days
3
  1. 10:00

    to 11:00 · 60 min

    + calendar

    keynote

    The GIL is optional now. What happens next?

    Jessica Huang · UC Berkeley (opens in a new tab)

    Free-threaded Python has been officially supported since 3.14. Jessica will review a year of adoption across the package ecosystem and discuss the work that remains before the free-threaded build can become the default.

  2. 11:00

    to 11:20 · 20 min

    + calendar

    Moving a monorepo to uv

    Kevin Patel · Lyft (opens in a new tab)

    Last year our team migrated our main Python monorepo from pip-tools to uv workspaces. I'll walk through the migration roughly in the order we did it, starting with local development and ending with production Docker images, and share the configuration we settled on.

  3. 11:20

    to 11:40 · 20 min

    + calendar

    t-strings for library authors

    Lauren Kim · Pinterest (opens in a new tab)

    PEP 750 introduced template strings in Python 3.14. Unlike an f-string, a t-string evaluates to a Template object that a library can inspect before producing output, so values can be escaped or parameterized automatically. This talk is for maintainers who want to accept t-strings in their APIs.

  4. 11:40

    to 12:00 · 20 min

    + calendar

    Writing a Python extension in Rust with PyO3 and maturin

    Ryan Okamoto · Dropbox (opens in a new tab)

    A live-coded walkthrough of creating a Rust extension module with PyO3, building it with maturin and publishing wheels to PyPI from GitHub Actions. Some familiarity with Rust syntax will help but isn't required.

  5. 12:00

    to 13:00 · 60 min

    + calendar

    Polars for pandas users

    Emily Chen · Instacart (opens in a new tab)

    In this session we'll take a set of common pandas operations and rewrite them in Polars one at a time, then move on to the lazy API and how to read a query plan. Attendees should be comfortable with pandas. No Polars experience is needed.

  6. 13:00

    Break · 60 min

  7. 14:00

    to 15:00 · 60 min

    + calendar

    Gradual typing in a large codebase: five years in

    Sarah Goldberg · Bloomberg (opens in a new tab)

    Our team began adding type annotations to our largest Python codebase in 2021. Sarah will share how coverage grew over that time and how the checks enforced in CI changed as it did. She will also discuss the team's recent trial of a Rust-based type checker running alongside mypy.

  8. 15:00

    to 15:20 · 20 min

    + calendar

    Django 6.0's tasks framework

    Alex Ramirez · Eventbrite (opens in a new tab)

    Django 6.0 includes a new framework for defining and enqueuing background work. This talk introduces the API and demonstrates converting a small Celery-based project to use it.

  9. 15:20

    to 15:40 · 20 min

    + calendar

    asyncio.TaskGroup and cancellation

    Brian Wong · Twilio (opens in a new tab)

    A close look at how cancellation works in asyncio, using TaskGroup and asyncio.timeout() as examples. We'll step through what happens when one task in a group fails and how to write cleanup code that runs correctly when a task is cancelled.

  10. 15:40

    to 16:00 · 20 min

    + calendar

    Hypothesis for people who've never used it

    Rachel Levine · Robinhood (opens in a new tab)

    An introduction to property-based testing with the Hypothesis library for developers who already write tests with pytest. We'll start with simple examples and work up to testing a small parser.

  11. 16:00

    to 16:20 · 20 min

    + calendar

    Running Python in the browser with Pyodide

    David Nguyen · Chan Zuckerberg Initiative (opens in a new tab)

    Pyodide is a port of CPython to WebAssembly that can run much of the scientific Python stack in a web browser. David will demonstrate a data exploration tool that runs with no server and explain how it was deployed for researchers.

  12. 16:20

    to 17:20 · 60 min

    + calendar

    Securing a PyPI release pipeline

    Vikram Shah · GitHub (opens in a new tab)

    In this hands-on session, participants will set up a release workflow for a sample package using GitHub Actions and PyPI trusted publishing, then add build attestations and a lockfile. Please bring a laptop and have a GitHub account and a TestPyPI account ready.