Schedule

  • All Talks
  • Fundamentals
  • Data
  • Python at Scale
  • Misc
  • Beginner-friendly

Aug. 11, 2017

5:30 p.m.

Registration | Reception

7 p.m.

Opening | Panel Discussion

7:45 p.m.

Lightning Talks

8:45 p.m.

More networking

Aug. 12, 2017

8:30 a.m.

Registration | breakfast

9:30 a.m.

Opening | Keynote from Raymond Hettinger

11 a.m.

Alex Martelli

Testing in Layers

Alex Martelli

Fundamentals

Alex Martelli

Fisher East

60 mins

Automated testing is at the heart of modern development and operations, but it's often segregated between developer-focused unit testing and separate, often only semi-automated integration testing. The talk shows that the best kind of testing deploys in many layers, re-using test-components in various configurations for multiple testing purposes.

Rachel Thomas

Using randomness to make code much faster

Rachel Thomas

Dealing With Data

Rachel Thomas

Fisher West

60 mins

An introduction to randomized linear algebra (a recently developed field with huge implications for scientific computing) in Python with a detailed case study of randomized Singular Value Decomposition (SVD). We will look at the applications of using randomized SVD to find the topics of documents and to identify the background in a surveillance video.

noon

Lunch

1 p.m.

Katherine Scott

Python from Space: Analyzing Open Satellite Imagery Using the Python Ecosystem

Katherine Scott

Dealing With Data

Katherine Scott

House Canary Room

45 mins

This talk is designed to give you all the tools you will need to go home and start using satellite imagery to make an impact on the world. The talk will cover finding, processing, evaluating and visualizing open satellite data using open source tools written in python.

James Abel

latus - a Personal Cloud Storage App written in Python

James Abel

Etc

James Abel

Robertson 3

45 mins

Many people use personal cloud storage applications to keep all of their files accessible, backed up and secure. However, they generally are closed source, so they can't easily be viewed or modified. latus is a personal cloud storage application that is open source and written in Python. It provides flexible file sync across computers (nodes) and the cloud, as well as 'zero knowledge' encryption.

Virginia Tam

Rebuilding the Yelp API

Virginia Tam

All Things Web

Virginia Tam

Fisher East

45 mins

Ever wanted to burn down your old code and start all over again? With the Yelp public API (known as the Yelp Fusion API), that’s exactly what we did. In this talk, Virginia Tam, a software engineer at Yelp, will talk about the challenges the team faced building the newest version of the Fusion API and what we learned in the process.

Paul Everitt

Python 1994

Paul Everitt

Etc

Paul Everitt

Fisher West

45 mins

"Come for the language, stay for the community." The Python community started in 1994 at a NIST workshop in Maryland. What was the world of Python like in its first years? Did we have any clue whatsoever? A joke-focused tour of early Python, heavy on question-and-answer.

2 p.m.

Noah Kantrowitz

Intellectual Property for Engineers

Noah Kantrowitz

Fundamentals

Noah Kantrowitz

House Canary Room

60 mins

Intellectual property is everywhere in software, especially in open source. From licenses to copyrights, a working knowledge of IP law can help you navigate the FOSS world more effectively as either a developer or user.

Riley Patterson

Performant Asynchronous Programming at Quora

Riley Patterson

Performant Python

Riley Patterson

Robertson 3

60 mins

In this talk, we will discuss the design of Quora's asynq framework, which provides an asynchronous API to a global scheduler for data requests. We will explore in depth the common problem that motivated it, the design of the framework, and how it has been used in practice to make both the product and development faster at Quora.

Predicting Oscar winners & box office hits using things you found on the Internet

Deborah Hanus

Dealing With Data

Fisher East

60 mins

Using Jupyter notebooks and scikit-learn, you’ll predict whether a movie is likely to win an Oscar or be a box office hit. Together, we’ll step through the creation of an effective dataset: asking a question your data can answer, writing a web scraper, and answering those questions using nothing but Python libraries and data from the Internet.

Paul Ganssle

Time Zone Troubles: Dealing with Imaginary and Ambiguous Datetimes

Paul Ganssle

Fundamentals

Paul Ganssle

Fisher West

60 mins

This talk will cover how to deal with time zone-related edge cases like daylight savings time, and will provide an understanding of the way python handles time zones. It will go over how to use the time zone classes provided by dateutil.tz and pytz, and the advantages and disadvantages of each.

2:45 p.m.

Snack

3:15 p.m.

async/await and asyncio in Python 3.6 and beyond

Yury Selivanov

Performant Python

House Canary Room

60 mins

The talk overviews async/await, asynchronous generators and comprehensions in Python 3.6 and the asyncio module. We'll discuss when and how asyncio should be used in a modern applications and services, what is uvloop, and what asyncio frameworks and libraries one should use. I'll share our ideas about where asyncio is headed and what to expect in Python 3.7.

Anna Ravenscroft

Overcoming Cognitive Bias

Anna Ravenscroft

Etc

Anna Ravenscroft

Robertson 3

60 mins

Starting with a brief description of how built-in mechanisms in our brains lead to cognitive bias, the talk will address how a variety of cognitive biases manifest in the Python and tech communities, and how to overcome them.

Flávio Juvenal

Your Django app is a User Interface

Flávio Juvenal

All Things Web

Flávio Juvenal

Fisher East

60 mins

Usability heuristics are a useful way to evaluate an interface. An often overlooked aspect of Django apps is they’re interfaces too, one that connects the developer with a reusable solution. In this talk, we’ll learn how to apply usability concepts to Django apps to make them better to (re)use.

Mahmoud Hashemi

The Packaging Gradient

Mahmoud Hashemi

Scalable Python

Mahmoud Hashemi

Fisher West

60 mins

Shipping any software can be hard if you don't know what you're getting into. An ergonomic, general-purpose language like Python can get you into complex packaging waters without you noticing. This talk presents a straightforward, example-driven guide to choosing among virtually every method in common use for packaging Python, scaling from wheels to PEX to Docker and more.

4:30 p.m.

Moshe Zadka

Moving Towards Best Practices in Legacy Code Bases

Moshe Zadka

Etc

Moshe Zadka

House Canary Room

60 mins

When a company is young, getting the product out the door is the most important thing. Time to market and lopsided hiring of inexperienced developers often ends up delivering a product that works, but is riddled with Python anti-patterns. How to move towards best practices while maintaining development velocity and product stability?

Brian Spiering

A Gentle Introduction to Text Classification with Deep Learning

Brian Spiering

Dealing With Data

Brian Spiering

Robertson 3

60 mins

Deep learning has proven very effective for machine learning tasks in the past couple of years, but it is sometimes shrouded in jargon and unnecessary technical detail. This talk will provide a practical introduction to the topic focusing on building an end-to-end text classification system. No machine learning or deep learning experience required. Intermediate knowledge of Python required.

Randall Degges

Everything You Ever Wanted to Know About Web Authentication in Python

Randall Degges

Security

Randall Degges

Fisher East

60 mins

Want to learn how web authentication works? How your login information is transmitted from a web browser to a web server, and what happens from that point onwards? How authentication protocols work behind the scenes?

By the end of this talk, you’ll be intimately familiar with web authentication in Python.

Jessica Earley-Cha

Introduction to Celery (Distributed Task Queue) Doctor Who Version

Jessica Earley-Cha

Etc

Jessica Earley-Cha

Fisher West

60 mins

An overview of what is Celery (an asynchronous task queue/job queue based on distributed message passing. It is focused on real-time operation, but supports scheduling as well) and how they are helpful. Then a walkthrough of how to set up celery task, connecting it to a messaging server (RabbitMQ) and running it.

5 p.m.

Job Fair | Tools Expo | Reception

7:30 p.m.

Sponsored Program TBD
Sponsored Program TBD

Aug. 13, 2017

9:30 a.m.

Registration | Breakfast

10 a.m.

Luciano Ramalho

Think like a Pythonista

Luciano Ramalho

Fundamentals

Luciano Ramalho

House Canary Room

60 mins

This talk is about some key insights that made me a better Python programmer and resulted in the success of Fluent Python.

Modern Frontend Web Development

John Lockwood

All Things Web

Robertson 3

60 mins

Learn how develop a single page web application written with modular components on the frontend and python on the backend.

Melanie Warrick

Machine Learning in the Cloud

Melanie Warrick

Etc

Melanie Warrick

Fisher East

60 mins

Machine learning (ML) has gained significant attention because of its impact from advancements in areas like automated medical diagnosis to unique product interactions and advertising for individual users. This talk will give you insights on how to apply a production level ML model.

Itay Weiss

CPython, Grumpy, PyPy - When, How, Why?`

Itay Weiss

Performant Python

Itay Weiss

Fisher West

60 mins

I will talk about the differences between the three implementations. Focusing on use cases in which each of them should be used and how each environment tackles performance issues (GIL, just-in-time and Goroutines). I will also evaluate performance impact in real life scenario.

11:15 a.m.

Billions of Emails Synced with Python: How we built the Nylas Sync Engine

Christine Spang

Scalable Python

House Canary Room

60 mins

The open source Nylas Sync Engine provides a RESTful API on top of a powerful email sync platform, making it easy to build messaging into apps. It’s built using Python and gevent and has scaled to sync billions of messages over its lifetime deployment. In this talk, we’ll show you how it’s built and what technical challenges we’ve solved along the way.

Open source communities have led to the development of a majority of useful tools and technologies. Open source software is understated because becoming involved can be daunting when a project has hundreds of active developers. In reality, open source communities are warm, welcoming, and diverse. Learn more about open source, its significance, opportunities to contribute, and how to get started.

Build your own IoT doorbell: Raspberry Pi, Twilio, and Fire(base)

Heston Liebowitz

All Things Web

Fisher East

60 mins

Internet connected doorbells are all the rage, but buying something off the shelf is no fun. In this talk, you'll follow the speaker's (mis)adventures as he connects a Rasperry Pi to his old school doorbell chime, builds a voice-powered UI with Twilio, and hooks it all together with the Google Firebase Realtime Database.

You may have heard of edX.org, the MOOC site created by Harvard and MIT, but did you know that the software powering this site is open source and written in Python? We’ll do a technical deep dive and explore how this software is built in a scalable way to serve millions of concurrent learners, and also show you how you can create your own Open edX site to deliver online courses at scale.

noon

Lunch

1:15 p.m.

Zvezdan Petkovic

Bringing Python 3 to LinkedIn

Zvezdan Petkovic

Etc

Zvezdan Petkovic

House Canary Room

60 mins

Organizations keep finding excuses to stay on Python 2, especially large companies with a lot of legacy code. Developers in such organizations either require or could benefit from Python 3 features, such as asyncio or type checking, but are constrained by their environment. It does not have to be that way and you can move to Python 3 with careful planning and agile, incremental execution.

Meggie Mahnken

Getting Started with Django's Class-Based Views

Meggie Mahnken

All Things Web

Meggie Mahnken

Robertson 3

60 mins

Object orientation affords elegance and readability for back-end view logic for Python web applications. Come learn about how to not only start using Django’s Class-Based Views, but also how they work and how to break them down for your use case.

Brian Weber

Unit Testing with Mock

Brian Weber

Fundamentals

Brian Weber

Fisher East

60 mins

Python's mock library is a handy tool when you need to test your code and only your code. You can use mocks to replace calls to services and libraries that are outside of your code. In this talk, you'll get a breakdown of the features of mocks and several examples of how to implement mocks in your test code.

Sourabh Bajaj

Big data processing with Apache Beam

Sourabh Bajaj

Dealing With Data

Sourabh Bajaj

Fisher West

60 mins

In this talk, we present the new Python SDK for Apache Beam - a parallel programming model that allows one to implement batch and streaming data processing jobs that can run on a variety of execution engines like Apache Spark and Google Cloud Dataflow.

2:30 p.m.

Albert Sweigart

Logging and Testing and Debugging, Oh My!

Albert Sweigart

Fundamentals

Albert Sweigart

House Canary Room

60 mins

Logging messages, unit tests, and using the debugger are best practices, but often left out of introductory programming tutorials. As a result, beginners come away with the idea that these time-saving features are somehow "advanced" or things to be learned later on. In this presentation, Al Sweigart dispels these notions by providing quickstart guides to Python's logging, doctest, and pdb modules.

Yann Kaiser

Awaits, how do they work?

Yann Kaiser

Language Internals

Yann Kaiser

Robertson 3

60 mins

Learn what exactly the async/await keywords do in Python 3.5+. Examples that bend the keywords' meaning will reveal how an event loop works and how asyncio-like frameworks could be implemented.

Natalie Serebryakova

Continuous Deployment with Python (automated software delivery)

Natalie Serebryakova

Devops

Natalie Serebryakova

Fisher East

60 mins

The presentation will be helpful for engineers, who developed an application in Python, or library or microservice. The presentation will cover the practices automating continuous integration, continuous delivery, and continuous deployment with Python ( examples: Jenkins and Gocd).

Deciding to stop support for Python 2 is a hard choice. As library authors we try to minimize the breakage for users. IPython recently moved from single-source to Python 3 only, and worked with Core Python to make such a transition possible and easy. We'll show you the new features available in pip/setuptools to make that easy for you, and tell you how the transition went for IPython.

3:15 p.m.

Snack

3:45 p.m.

The with statement is relatively recent, having been introduced in Python 2.5. You have most likely used it or have seen it used with files. What's a "context manager" anyway, and why can't I use any Python object with with unless it has one? In this talk, we'll cover some background, objects you can use with the with statement, and show you how to add context management to your own objects.

Python Debugging with PUDB, Charles and cProfile

Christopher Beacham

Etc

Robertson 3

60 mins

When tracking down a tricky bug, tools are everything. I'll demonstrate three useful debugging tools and we'll see how we can use them to find bugs, whether they are in networking, logic, or performance.

Ravi Chityala

Before deep learning

Ravi Chityala

Dealing With Data

Ravi Chityala

Fisher East

60 mins

A significant work in deep learning technique such as Convolution Neural Network (CNN) is in preparation and augmentation of image data. The data is then fed to the network for classification. In this talk, we will discuss an example where we will solve a CNN after preparing the data using appropriate computer vision and image processing algorithms using modules such as numpy, scipy, OpenCV etc.

Sandy Ryza

Solving NP-Hard Bus-Scheduling the Easy Way

Sandy Ryza

Etc

Sandy Ryza

Fisher West

60 mins

Which driver should drive which public bus, and when? At Remix, we use Python to build algorithms for NP-hard problems in transit-scheduling. In this talk, we’ll discuss practical techniques for dealing with discrete optimization problems, including local search in raw Python and the PuLP library for integer programming.

5 p.m.

Lightning Talks

6 p.m.

Closing | Raffle