Pybay 2019 Talks

For our 4th year, we were hoping to curate a program that:

  • Includes the latest developments and use of Python in various fields
  • Is diverse and inclusive of everyone who’s passionate about Python and doing good things with it!

Thanks to your amazing submissions and the diligent efforts of Luis Meraz, Brian Spiering, Simeon Franklin and many others, we now have a lineup of amazing speakers consisted of Python Core developers, book authors, founders/CTOs, developer evangelists and industry practitioners. ~33% are from under-represented groups, ~29% are from out of the Bay Area -- some as far as UK, Israel, Poland, and Brazil!

You are in a treat if you want to learn more about Python fundamentals, ML/AI/DS, DevOps/infrastructure/Testing. But that's not all, you will find exciting talks on scale/performance, web, iOT, hardware, development best practices and job searching tips too!

Boring Object Orientation

Moshe Zadka

The strengths and weaknesses of Python lend themselves to a different style of object oriented programming. By accepting several constraints on how we design and implement classes, we make our code more robust, more testable, and easier to adapt to changing circumstances.

(Deep) Learn You a Neural Net for Great Good!

Stu Stewart

Together we live code (in a RISE slideshow) a fully-connected neural net from scratch via numpy, initially training it using a for-loop to demonstrate core concepts, and finally codifying it as a Scikit-learn classifier with which one can fit & predict on one’s own data. To close, I walk through a toy example which logistic regression can’t properly classify, but which our NN can.

Perceiving Python Programming Paradigms

Jigyasa Grover

Last couple of years have witnessed an immense growth of Python in multifarious domains especially AI/ML, web, etc., each one necessitating a different programming paradigm varying from object oriented, functional, procedural to imperative. This talk reviews them all and helps you choose one for an efficient design solution !

Understanding Python’s Debugging Internals

Liran Haimovitch

Have you ever wondered how Python debugging looks on the inside? During this session, we’ll share how debugging actually works in Python. We’ll discuss the differences between CPython and PyPy interpreters, explain the underlying debugging mechanism and show you how to utilize this knowledge at work and up your watercooler talk game.

Writing good python APIs with autosig

Antonio Piccolboni

APIs are important. It's how your packages relate to the rest of a program and their users and they are a fundamental defense against complexity. Discussions on how to write good APIs are long on opinion and short on concrete and unambiguous steps a developer can take. At the opposite end, I decided to focus on the very specific subject of API consistency and to provide a package that supports the writing of consistent APIs by factoring out their syntactic and semantic aspects. From argument naming and ordering, to initialization and checking, to documentation, autosig provides a way to concisely describe an API, minimizing repetition and the possibility of error, or just messiness. In this talk, we will introduce the package by way of two examples of increasing complexity, then discuss with the audience directions in which the package should go.

Deploy Deep Learning models as Microservices in minutes

Saishruthi Swaminathan Gabriela de Queiroz Karthik Muthuraman

Seamlessly serve state-of-the-art deep learning models as web microservices in minutes and create an application around it without having prior deep learning experience.

AB testing in Python

Raul Maldonado

Python development has had a great emergence in development of statistical packages, algorithms, and implementations. However, with the development and ease of practicing statistics & algorithms, there are still some rules and constraints one must follow to obtain quality solutions. And that is especially true with AB Testing, a statistical procedure to provide data-driven insights in uncertainty.

Python and R for Advanced Analytics

Britton Stamper

As the complexity and volume of data grows, data teams are optimizing their analytics workflows to support more complex logic, advanced transformations and customized visualizations that will be crucial in supporting machine learning and AI. Britton Stamper of Periscope Data by Sisense will share the impact data analysts are seeing from leveraging the strengths of SQL, Python and R together into their workflows.

Identifying influencers via Slack Messages in Python using Network Analysis and NLP

Eva Sasson

Learn how to build a network web in Python to reflect conversations between people based on Slack conversations. Then, build a natural language processing model to evaluate what all those people are talking about, and which conversations determine who in the network carries “technical knowledge”.

Understanding Concurrency in Python!

Annie Cook

Asyncio is the latest and greatest way to write concurrent code, but are the principles behind it really novel? At its core, asyncio just an implementation of single-threaded, cooperative concurrency. Thats a lot of buzzwords! Let's zoom in on single-threaded, cooperative concurrency more broadly, explore what that means, how it works, and why it's valuable.

Migrating from REST to GraphQL under Django

Manish Sinha

GraphQL has become the de facto successor to REST. How does this impact Django developers? In this talk, we will explore the state of Django web API libraries focusing in on the Django REST Framework and Graphene.

Plugins: using importlib to build self describing apis

Daniel Wallace

Api's all have a defined structure, they sometimes almost look like a file tree of actions. Use that similarity + a plugin system to model and organize your api.

Pushing the limits of Python: ML infra at Netflix

Ville Tuulos Ravi Kiran Chirravuri Savin Goyal

We will share our experiences on building Metaflow, a Python library that is used at Netflix to build and operate hundreds of machine learning applications. This talk is for you if you want to learn how to develop systems for big data and ML in Python.

Airflow in Practice: Stop Worrying Start Loving DAGs

Sarah Schattschneider

Heard of Apache Airflow? Do you work with Airflow or want to work with Airflow? Ever wonder how to better test Airflow? Have you considered all data workflow use cases for Airflow? Come be reminded of key concepts and then we will dive into Airflow’s value add, common use cases, and best practices. Some use cases: Extract Transform Load (ETL) jobs, snapshot databases, and ML feature extraction.

Ask the Ecosystem: Lessons from 200+ FOSS Applications

Mahmoud Hashemi

If you had to build a software application right now, how would you do it? First step, Python. But then what?

This talk looks at over 200 of the most-successful open-source Python applications to provide advice on building effective software to reach the masses. Architecture, testing, licensing, packaging and distribution, these projects hold lifetimes of work and wisdom, waiting to be learned!

Why you should be using structured logs

Stefan Krawczyk

At Stitch Fix most application logs are output in a structured JSON format for simpler debugging and downstream consumption.

In this talk we’ll cover in more detail why structured logs are useful and provide leverage, caveats to using them, and how simple it is to get one going with Python.

Talking to data as you would with built-in types.

Thor Whalen

In this talk I will present a project (coined py2store) whose goal is to develop tools that allow developers to interact with a variety of data sources and sinks, local or remote, through a consistent and simple interface.

How simple? The simplest. Objects that feel like built-ins (dicts, lists, sets).

Real-Time Bidding Models in Computational Advertising

Allie .

The talk provides an overview of the ad tech ecosystem, in particular how ad slots are dynamically populated by way of user behavioral targeting each time a webpage loads. It should be interesting for developers as well as data scientists who are looking to learn about the applications of machine learning in computational advertising.

Building effective Django queries with expressions

Vanessa Barreiros

In Django, we have a powerful tool called ORM to manipulate databases easily. For small queries, it can be quite simple, but what happens when you need to do tricks like nested queries or computed values? One of the answers is query expressions. In this talk, we'll learn how to power-up queries with them by walking through comparisons and examples with a dataset.

Be Ye Therefore Wise As Serpents

Grant Jenks

Too often, the people giving talks have already arrived at big fancy titles: Directors of Engineering, Chief Scientists, and Founders. But at some point, all of us will interview for that dream job, and most of us will suffer a coding interview or two or twenty. Fortunately, Python is an ideal language for many coding interviews. Come discover tools and tips for technical interviews with Python.

Generate, Extrude, Build: creating 3D objects in code

Julia Ma

3D printers are becoming more and more accessible, but to create your own objects, you need to know how to generate 3D models. Get started by using OpenPyScad, a Python library that generates 3D-modeling source code.

This talk will go over the challenges I encountered while learning 3D modeling, including deciding on which tools to use and how to think about 3D objects in code.

Patterns for Clean API Design

Paul Ganssle

This talk will arm you with some tools to design a library that "just works", but also has obvious escape hatches to handle corner cases. It covers several patterns for cleanly organizing related and overlapping functionality in a way that satisfies both humans and static analysis tools.

Building contextual AI assistants with OSS tools

Justina Petraityte

AI assistants are getting a great deal of attention from the industry as well as the research. However, the majority of assistants built to this day are still developed using a state machine and a set of rules. That doesn’t scale in production. In this talk, you will learn how to build AI assistants that go beyond FAQ interactions using machine learning and open source tools.

Full Stack Web with Nothing but Python: How Anvil Works

Meredydd Luff

Programming for the Web requires 5 languages and 5+ frameworks. Wouldn’t it be easier if we could do it all in Python?

Meredydd will discuss how he built Anvil, a tool for building full-stack web apps with nothing but Python. Topics include compiling Python to JS, how autocompletion works, capability-based security, and why true accessibility means more than “usable by beginners”.

Audio processing and ML using python

Jyotika Singh

Challenges with Audio Classification problems focussing on cleaning and building features from audio which can then be used to build a classification model, features that work well with audio and speech data and the open source libraries useful for the same.

Customizing Sphinx: Simple, Normal, and Hard

Paul Everitt

Make Sphinx your own, in 30 hilarious minutes. You'll laugh, you'll cry, and so will I.

Do you use Sphinx? Probably. Do you run a Sphinx? Possibly. Do you customize or extend your Sphinx? Sources say “no”. In this talk, we tap into the little-known power of Sphinx-as-a-Platform.

Browser security with HTTP headers

David Lord

Browsers provide many ways to help keep your users and their data secure. In this talk, learn about what security features are available and how to enable them in Flask, Django, or other web applications. This talk is targeted at intermediate web developers, but should be useful for beginners as well.

CUDA in your Python: Parallel Programming on the GPU

William Horton

It’s 2019, and Moore’s Law is dead. CPU performance is plateauing, but GPUs provide a chance for continued hardware performance gains, if you can structure your programs to make good use of them. In this talk you will learn how to speed up your Python programs using Nvidia’s CUDA platform.

Profiling Python/C++ ML applications using VSCode

R.Gabriel Esteves

The Python Machine Learning stack is notable for its depth, breadth and flexibility, often with components of equivalent functionality with different performance characteristics. This talk presents tools and techniques that can help informing the decisions of which components to use so as to create deployments that meet the performance requirements of an application.

Building a Sustainable Python Package Index

Dustin Ingram

Most of us have installed a Python package, but do we know what it takes to make that work in a consistent, reliable way?

An Intro to Load Testing with Locust and Python

Gabriel Boorse

Puzzling over performance problems in production? Baffling backend bugs bending your brain? Unleash a plague of Locusts on your web app to devour performance problems, permanently! In this talk, you will learn how to leverage Locust for load testing RESTful services and more.

Learning from Human Failures & Successes of PySpark

Adam Breindel

This talk is less about technical success and failures; it instead focuses on where the tech meets squishy humans: API design, communication, empowering (or not) end users, sometimes even protecting open source from ourselves.

Specifically, we'll look at some well-oiled parts and some rusty frictiony bits that come between PySpark (as a computing ecosystem) and its main user community.

Koalas: Easy Transition from pandas to Apache Spark

Xiao Li

In this talk, we present Koalas, a new open source project that was announced at the Spark + AI Summit in April. Koalas is a Python package that implements the pandas API on top of Apache Spark, to make the pandas API scalable to big data. Using Koalas, data scientists can make the transition from a single machine to a distributed environment without needing to learn a new framework.

Make the Most of It: Negotiation and Self-Advocacy

Lusen Mendel

Everyone deserves to make the most of their career opportunities, but it can be difficult to ask for a raise or negotiate an offer. This talk will not only inspire you to stop holding back from advocating for yourself, but also give you a concrete mental model and specific statements you can use to build healthy employment relationships with recruiters and managers.

Unit testing using monkey patching in pytest

Vikram Bhat

Unit testing is loved by so many that it is already a very popular concept. But I will try to make unit testing even simpler with pytest using monkey patching. Come to learn about unit testing with pytest using monkey patching.

What's Coming in 3.8? Assignment Expressions & More!

Adam Forsyth

Curious what's coming next for Python? Well, Python 3.8 is being released just a few short months. It already includes a number of new features such as assignment expressions, improved debugging, more string formatting features, and many smaller changes. Come learn about the big ones and some of the more interesting small ones too!

CuPy: A NumPy-compatible Library for the GPU

Sean Farley

Learn how the open source Python module CuPy works as a drop-in replacement for NumPy to enable calculation using GPUs. We'll explain how engineers can speed up calculations by making their own kernels on the GPU. We'll also cover other projects incorporating CuPy to increase calculation speed.

How to Write Pytest Plugins

Darlene Wong

Pytest is a widely-used, full-featured Python testing tool that helps you write better programs. Did you know that you can easily enhance and customize Pytest through the use of plugins? In this talk, you will learn all about some of the useful Pytest plugins that are available, and learn how to create your own plugins.

Accelerating Driver Development with CircuitPython

Bryan Siepert

An introduction to Python on hardware from the perspective of writing device drivers for embedded systems.

My Path to Becoming a Python Core Developer

Emily Morehouse-Valcarcel

Python Core Developers help shape and build the language we love. But what do core developers actually do, and how do you become one? Hear the story of how I went from an aspiring Core Developer to implementing one of the most controversial changes to the language.

Dependency Injection, Quickly

Edwin Jung

Dependency Injection is a basic technique in other languages or frameworks, but less commonly seen in Python. For many developers, and especially those who have come to rely on patching, it is also un-intuitive. Superficially, it may be considered as simply "passing things in" via parameters, but this understanding is mistaken, and often falls apart when applied to realistic examples.

Understanding DI as a technique is a gateway to improving both your software design and testing, as well as clean architecture principles. This session will introduce fundamental DI concepts with basic examples, clear up some common misunderstandings, and draw a connection to clean design and testing. The content is aimed at a beginning to intermediate level.

Amazing things your ORM(s) can and can't do

Louise Grandjonc

SQL can seem like an obscure but somehow useful language. In this talk we will look into things that SQL can do, sometimes more easily than using python, and how to get it in your ORM, running in your application. During this talk we will use an application analysing the lyrics of my favorite teenage band and show fun examples of these SQL statements, and how to integrate them in your code

Unclogging a VFX Production Pipeline with Analytics

Bridgette Powell

Without a unified analytics solution, it has been difficult to understand tool efficiency within our pipeline. Developers and artists need a way to proactively identify areas for improvement in their pipeline tools and production rigs. Visualizing statistical data allows users to quickly identify, correlate, and fix issues. It provides insight into complex systems which are otherwise black boxes.

Python + Terraform = ♥

Wyatt Peterson

At NerdWallet we are heavy Terraform users, but we don't use HCL (the native Terraform language) to build our resource definitions -- we use Python! This talk will cover the motivation for using Python and details of the implementation of how Python is converted into Terraform definitions.

Data Access at

melissa fabros

Kiva has provided an enormous amount of data transparency for over a decade. The data has powered economics studies and machine learning research. Attendees will be introduced to the one of the largest publicly available data sets for micro finance.

Effective Visual Representations using Python

Alark Joshi

I will present strategies to create effective data representations using a variety of python libraries. This talk will contain effective data visualization principles contextualized through Python examples. We will focus on commonly used techniques such as bar charts, pie charts, and will also discuss new strategies such as small multiples & use of animation and interaction for data exploration.

Extending GDB with Python

Lisa Roach

GDB is powerful, and can be extended with Python to do more than just one-off debugging. This talk will describe using Python with GDB to with GDB to write tools that interact with running processes, highlighting GDB’s ability to call C functions and how this can be coupled with Python’s C-API to inject code without needing to stop the process.

Beyond Paradigms

Luciano Ramalho

Java is object oriented and Haskell is functional. How about Python? Is it really OO with free-standing functions and porous encapsulation? Python has lambdas and closures, but is it functional? Are these useful questions?

A better approach to learning of programming languages is to focus on features, not paradigms. This delivers practical advice for choosing patterns and understanding idioms.

Getting Specific About Algorithmic Bias

Rachel Thomas

Through a series of case studies, I will illustrate different types of algorithmic bias, debunk common misconceptions, and share steps towards addressing the problem.

The latest with BLACK, so you can stop worrying about Formatting

Łukasz Langa

What good is a code style if it's not internally consistent? What good is a linter when it slows you down? What if you could out-source your worries about code formatting, adopt a consistent style, and make your team faster all at the same time?

Come hear about Black: a new code style and a tool that allows you to format your Python code automatically. In the talk you'll learn not only how the style looks like but why it is the way it is. I will do my best to convince you not only that it's good but that it's good enough. You'll see how you can integrate it with your current workflow and how it speeds up your life while making your code prettier on average.

Lose your attachments, delegate the boring job of moving tokens around to satisfy the linter, and save time for more important matters. Guaranteed to increase the life expectancy of space bars and Enter keys on your new MacBook's keyboard.

The Mental Game of Python

Raymond Hettinger

or "Strategies learned from coaching, teaching, and StackOverflow"

If you work with thousands of developers, ranging from the experienced to the aspirational, you can see what patterns of thought seem to confer success. Raymond shares what he’s seen that works best for developing problem solving skills, learning how to learn, how to get unstuck, and reliable strategies for managing complexity.

The talk includes live coding examples to make these ideas concrete.

Project Jupyter: Tools for Interactive, Reproducible Data Science

Keeley Takimoto

As the demand grows for data science in industry and research, so does the need for tools to conduct, document, and share analysis. Project Jupyter has stepped up to meet this need with "open-source software, open-standards, and services for interactive computing across dozens of programming languages." Jupyter is now used by everyone from individuals doing personal projects on GitHub to major universities and corporations, including Microsoft and Google.

This talk will give an introduction to two key products of Project Jupyter: the Jupyter Notebook document and the multi-user JupyterHub. We will then share examples of how Jupyter is being leveraged to do data science accessibly, collaboratively, and at scale at UC Berkeley.

Python Steering Council Panel

Paul Everitt Łukasz Langa Barry Warsaw Benjamin Peterson Emily Morehouse-Valcarcel

Elected as prescribed in PEP 8016, the Python Steering Council is a 5-person committee that assumes a mandate to maintain the quality and stability of the Python language and CPython interpreter, improve the contributor experience, formalize and maintain a relationship between the Python core team and the PSF, establish decision making processes for Python Enhancement Proposals, seek consensus among contributors and the Python core team, and resolve decisions and disputes in decision making among the language.

This session will be moderated by , Paul Everitt (Python Software Foundation), to introduce a discussion with members of the community. Barry Warsaw (Steering Council), Łukasz Langa (3.8 Release Manager), Emily Morehouse (Core Dev), Benjamin Peterson (2.7 Release Manager)

mypy - Getting to Four Million Lines of Typed Python

Michael Sullivan

Dropbox is a heavy user of the mypy type checker, recently passing four million lines of type-annotated Python code, with over half of that added in the last eighteen months. Type checking is helping find bugs, making code easier to under stand, enabling refactors, and is an important aid to our ongoing Python 3 migration.

In this talk, we discuss how we got there. We’ll talk about what we tried in order to get our engineers to type annotate their code—what worked, what didn’t, and what our engineers had to say about it.

Additionally, we’ll discuss the performance problems we faced as the size of our checked codebase grew, and the techniques we employed to allow mypy—which is implemented in Python—to efficiently check (faster than a second, for most incremental checks) millions of lines of code, which culminated in mypyc, a new ahead-of-time compiler for type-annotated Python!

As We May Program

Peter Norvig

Innovations in machine learning are changing our perception of what is possible to do with a computer. But how will machine learning change the way we program, the tools we use, and the mix of tasks done by expert programmers, novice programmers, and non-programmers? This talk examines some possible futures.

PEP 581 and PEP 588: Migrating CPython's Issue Tracker

Mariatta .

In 2017, CPython codebase was moved to GitHub from Mercurial, an effort that took more than three years of planning and lots of volunteer coordination. The move proved to be successful and well-appreciated. New contributors face less barriers when contributing to Python. Core developers are benefiting from personal assistants in the form of GitHub bots and automations. Can the workflow be even better? In this talk, we'll look into other problems in CPython's workflow: the issue tracker itself.

The acceptance of PEP 581, by Python steering council means that another big workflow change is impending. Let's hear about some of the proposed plans on improving CPython's workflow, and learn how you can help and take part in this process.

Lightning Talks

Could be you!

Lightning talks are 5-minute talk slots with or without slides on something you’re passionate about (no hiring or company pitches, please). Humor preferred, goat photos optional, learning value expected.

Please sign up to deliver a lightning talk now!

EdgeDB & Python

Yury Selivanov

The talk will introduce people to EdgeDB and how it can can be used in Python. EdgeDB is an excellent replacement for an ORM, it can drastically simplify code and improve performance. EdgeDB can act as a modern data layer, unlocking GraphQL and providing an asynchronous communication channel to your database.