8:30 a.m.

9:30 a.m.

11 a.m.

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.

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.

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.

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.

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.

"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.

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.

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.

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.

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.

With developers, an awesome product isn’t everything, or at least we found that out. More than a product you need a platform. But what is a platform? Learn tips and tricks about building a public API using the latest and greatest tools: OpenAPI, Python 3 and asyncio.

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.

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.

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.

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?

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.

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.

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.

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.

This talk will teach you how to use and extend tools for automated checks on Python projects. Are your imports a mess? No reasonable order, stdlib modules mixed with third-party ones? There's a tool to fix that. Tired of checking for security patches of the libs in your requirements.txt? Let a tool do this for you. We'll learn about many other tools and we'll also discuss how to build new ones.

11:15 a.m.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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

Proudly Sponsored By

PyBay is offered by SF Python, a volunteer-run organization dedicated to building a stronger Python developer community. We do this by organizing fun events that encourage developers to meet like-minded folks, share what they know, and learn from each other. It’s hard work, but seeing people grow and make new friends and connections makes it worth it! We love hearing about companies making hires and migrating to better technologies as a result of our gatherings. We're also grateful to receive support for our work, financially and otherwise. We look forward to delighting you at PyBay and at other SF Python events throughout the year.