Paul Ganssle

Talks

Working with Time Zones: Everything You Wish You Didn’t Need to Know (zoneinfo edition)

(2023-04-21) Given at PyCon US 2023, this is a 30-minute talk on working with time zones. It is an update of Working with Time Zones and zoneinfo: A stunning module of exceptional quality.

What to Do When the Bug is in Someone Else’s Code

(2022-04-29) Given at PyCon US 2022, this is a 30 minute talk covering several strategies for dealing with upstream bugs — whether they are in open source libraries or owned by another team.

(2020-10-24) Given at PyTexas 2020, this is a 30 minute talk covering several strategies for dealing with upstream bugs — whether they are in open source libraries or owned by another team.

xfail and skip: What to do with tests you know will fail

(2022-03-26) Given at PyTexas 2022, this talk covers skipping tests or marking them as expected failures. It grew out of a lightning talk on the same subject, and the accompanying blog post “How and why I use pytest’s xfail.

The Stable Interface Paradox

(2020-12-05) Given at PyConf Hyderabad 2020, this is a 1-hour keynote talk. It introduce what I call the “stable interface paradox” — the unfortunate catch-22 that the fewer users of your interface you have, the less information you have about the right way to design the interface, but the more users you have, the harder it is to actually change that interface.

zoneinfo: A stunning module of exceptional quality

(2020-11-12) Given at the ChiPy __main__ meetup for November 2020. This is a significant update of Working with Time Zones, with additional history on the development of the zoneinfo module.

Build Your Python Extensions in Rust!

(2019-10-05) Given at PyGotham 2019, this is a 25 minute talk on writing Rust backends for Python modules.

(2019-07-10) Given at EuroPython 2019, this is a 30 minute talk on writing Rust backends for Python modules.

(2019-06-16) Given at PyLondinium 2019, this is a 25 minute talk on writing Rust backends for Python modules.

(2019-08-16) Given as: Patterns for Clean API Design. Given at PyBay 2019, this grew out of my variants lighting talk. This talk sets out some general design principles for library interfaces and explores ways to mark relatedness in your APIs while keeping a clean top-level interface. (30 minutes)

(2018-11-10) Given at PyCon CA 2018, this grew out of my variants lighting talk. This talk sets out some general design principles for library interfaces and explores ways to mark relatedness in your APIs while keeping a clean top-level interface. (30 minutes)

(2018-10-06) Given at PyGotham 2018, this grew out of my variants lighting talk. This talk sets out some general design principles for library interfaces and explores ways to mark relatedness in your APIs while keeping a clean top-level interface. (20 minutes)

Working with Time Zones: Everything You Wish You Didn’t Need to Know

(2019-05-05) Given at PyCon US 2019, this is a 25-minute talk on working with time zones.

(2018-06-10) Given at PyLondinium, this is a shorter version of Time Zone Troubles. (20 minute version)

Contributing to Open Source: A Guide

(2018-10-17) Given at PyData NYC 2018, this is a beginner’s guide to the social (and some technical) aspects of contributing to open source projects.

Time Zone Troubles: Dealing with Imaginary and Ambiguous Datetimes

(2017-08-12) Given at PyBay 2017, this is an in-depth look at time zones in Python. (40 minute version)

python-dateutil: A delightful romp in the never-confusing world of dates and times

(2018-06-01) Given at Taiwanese Data Professionals event “It’s About Time, Data People!” (20 minute version)

(2016-07-17) Given at PyGotham, this is an overview of the dateutil package. Audio is quite choppy.


Tutorials

Dealing with Datetimes

(2019-05-01) Given at PyCon US 2019, this is a tutorial that covers time zones, serialization and recurring events. The materials can be run in a self-paced manner, and there is much more material than there was time to cover in the tutorial.


Lightning Talks

Documentation Exercises

Introduces the concept of documentation exercises: exercises both in and for your documentation.

Test your Failures with xfail

A talk on marking tests as expected to fail, and why that’s a good idea.

variants: A convention for cleaner API design

A talk about the variants library I wrote for Python.

GridStrategy: A Proposed Mechanism for Automatic Subplot Management

A talk about my proposal (MEP 30) for a new somewhat automagical subplot manager for matplotlib

Time Zone Tools

One of the earliest forms of my talk on time zones, given at PyCon 2017.