Accepted Talks
-
1 + 1 = 1 or Record Deduplication with Python
Flávio Juvenal
How to find duplicate records in a dataset when it doesn’t have unique identifiers, like the SSN for US citizens? The answer is to use Data Deduplication techniques: look for matches by cleaning and comparing attributes in a fuzzy way. In this talk, you’ll learn with Python examples how to do this.
-
A Crash Course on Serverless Applications in Python
James Saryerwinnie
Heard about serverless computing but aren’t sure how to get started? Curious about the benefits of serverless computing? In this talk I’ll show you how to get up and running with serverless computing in less than 30 seconds. Learn how to design and deploy serverless applications in python.
-
A deep dive into Python stack frames
Nikhil Marathe
Learn how CPython implements the function call stack and how embedders can use this to extract useful reliability reports from their software!
-
A Junior Developer's Guide to Software Engineering
Kojo Idrissa
New developers often ask, “How much Python do I need to know to get a job?”. They overlook the other skills needed to be a successful software engineer. This talk highlights the other skill and tools needed, which can be used from the start of your coding journey.
-
A Practical Guide to Adopting Python Types
Roy Williams
Types in Python make it easier to understand how code works and helps catch bugs before they affect users, but require a significant upfront investment. This talk will give a guide for quickly adopting types in large codebases to get to where types have more value than the cost of adding them!
-
A worked example of using statistical and machine learning models to time series prediction
Rebeca Sarai
The analysis of time series data can be essential when making strategic decisions under uncertainty. This presentation discusses the tradeoff between statistical models and neural network-based techniques. It also demonstrates how to apply these techniques to a real problem.
-
Automating Code Quality: Next Level
Kyle Knapp
You are likely familiar with code quality tools such as flake8 and pylint. However, these tools won’t catch all issues that you may care about. I will be diving into the more advanced types of quality checks that you can use (or even write yourself!) to further automate your development workflow.
-
Beating Mastermind: Winning Games, Translating Math to Code, and Learning from Donald Knuth
Adam Forsyth
Mastermind is a logic-based guessing game. Many years ago, Donald Knuth described a way to win the game in 5 moves or less. We’ll implement the game and the algorithm from the article. Come learn how to beat Mastermind and turn a paper by a famous scientist into code!
-
Best Intentions, Least Measured
Nicole Zuckerman
The first step to creating a diverse workforce often to collect demographics data on your employees, but even this is challenging. In this talk, we discuss how we think about these challenges, strategies we implemented, and suggestions so others may have an easier time collecting this data.
-
Building a Read Aloud eBook in Python
Max Schwartz
What does it take to merge an audiobook and an eBook into a single experience, switching from reading to listening and back? We will show how we use Python to combine NLP and speech processing technologies to generate a Read Aloud eBook and showcase an application to help developing readers.
-
Choose Your Own Adventure for Client Web Services with GraphQL
David Anderson
In the style of a modern, web-development choose your own adventure, we’ll explore the benefits and trade offs of GraphQL and REST (including performance and scaling). We’ll build up an example schema using a choose your own adventure story as the model and leverage that schema in front end code.
-
Clean architecture in Python
Sebastian Buczyński
We have been building our web applications with DB in the centre of the design for years. While saving data cannot be ignored, one may lose track of business rules along the way if they concentrate on ORM models. Clean Architecture puts business value in the 1st place, letting think outside the box.
-
Coding by Voice with Dragonfly
Boudewijn Aasman
Coding by voice can provide benefits from reducing RSI and pain to great productivity boosts. Unfortunately, setting up a voice code environment is not as easy at it should be. Learn about setting up a voice environment workflow using Python, Dragonfly, and your favorite editor!
-
Computer Modeling in the Social Science of Disasters
Eileen Young
Do you know what everyone would do if Godzilla suddenly showed up in the room? Give social scientists enough computer power, and they can tell you. It wouldn’t look anything like a disaster movie, and the gap between Hollywood guesses and what people can prove is where things get exciting.
-
Creating a DVR with Python
Michael V. Battista
Ever get so caught up in Python code and projects that you miss your favorite TV show airing or streaming? Let Python solve that problem for you and grab the show for you so you can binge watch what you want whenever you want. To be continued…
-
Creative Music Applications in Python
Dror Ayalon
There is no better time than now to be a Python developer! Python is the language of choice for machine learning, neural networks, signal processing, and algorithmic music. The goal of this talk is to introduce attendees to tools and projects, that could be used to build creative music applications.
-
Critical Incidents: a guide for developers
Lais Varejão
As developers we know there’s no such thing as bug-free software. Incidents are inevitable and being prepared is key. How would you handle a database outage if it happened now? Or a critical bug affecting half of your users? How to plan the full recovery from the bug discovery until the postmortem?
-
Customizing Sphinx: Simple, Normal, and Hard
Paul Everitt
Many Python projects use Sphinx for documentation, so much so that Sphinx is like Python’s secret weapon. It’s a powerful, mature system for generating static content – not just docs, but blogs and regular websites.
-
Database Testing with pytest
Dan Clark
Testing relational database assests such as stored procedures, functions, and views can be awkward. However, Python can come to the rescue with pytest. We’ll dive into an example or two so that you too can leverage Python to test your own obtuse database structures.
-
Dataclasses are here. Now what?
Scott Irwin
The PEP 557 dataclasses module was added in Python 3.7 and so is one of the newest features of the language. Now that they are here, they bring a few questions with them. In this talk, we will explore some of those questions.
-
Diversity and Inclusion for all!
Michelle Chen
Stop and look around you. Are you next to people who look and think like you? Through grassroots efforts by fellow software engineers, we at Kyruus, a healthcare startup, are rethinking the entire lifecycle of diversity and inclusion: from the hiring process, to interviews, to daily interactions.
-
Egad! How Do We Start Writing (Better) Tests?
Andrew Knight
Some have never automated tests and can’t check themselves before they wreck themselves. Others have 1000s of tests that are flaky, duplicative, and slow. Wa-do-we-do? GOOD testing is hard but not impossible. Start with proven advice from this talk!
-
Everyday security issues and how to avoid them
Christian Heimes
Security is hard, yet vital for any software these days. After some motivational facts, this talk will take you on a brief tour in secure software design and illustrate common security issues. Topics include threat analysis, deployment, parsing, authentication, TLS/SSL, crypto, and more.
-
From Coroutines to Concurrency
Vishal Prasad
Asyncio and gevent are powerful libraries for lightweight concurrency. The best ideas of both can be built straightforwardly from plain coroutines. Let’s deep dive into coroutines and build our own concurrency library and poke around the internals of asyncio and gevent!
-
Gathering Related Functionality: 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.
-
Gradient Descent, Demystified
Michael (Stu) Stewart
I walk through a live coding practicum (in a RISE Jupyter Notebook slideshow) in which I implement an initial gradient descent algorithm for logistic & linear regression, demonstrating the flexibility of the optimization technique & decidedly un-scary code required to get our prototype up-&-running.
-
Great Engineering in the Worst Work Environment
Eyal Yavor
Imagine the worst possible engineering work environment: Strict dress code, fast employee turnaround with median age of 19, people gone for 2 weeks in the middle of a project, requirements and priorities that change monthly. Oh, and no internet access. Welcome to the Israeli Intelligence Unit.
-
How Etsy Handles “Peeking” in A/B Testing
Kelly Shen
Etsy relies heavily on experimentation to improve our decision-making process. In this talk, I will present how Etsy handles data peeking and how we use Python to help us investigate and assess the problem on our platform.
-
How I Learned to Stop Worrying and Love atomic(): Banking Blunders and Concurrency Challenges
Nick Sweeting
What do Superman III, Hackers, and Office Space all have in common? Find out in this talk, along with some concurrency, database integrity, and financial data safety fundamentals. This is a technical talk going over the core principles in database integrity and data safety, it assumes familiarity with the Django ORM.
-
How to Do Code Reviews Like a Human
Michael Lynch
Reviewing code is like driving: everyone thinks they’re good at it. The dev who just sent you 25 brusque, vague notes thinks of themselves as a wonderful reviewer. Truly great reviewers are great because they consider the human factors of reviews. So come learn how to do code reviews like a human.
-
How to get started with Text Analysis in Python (and analyzing Donald Trump's tweets).
Dave Klee
Python makes it pretty easy to deal with text, and there are a lot of great packages out there to help. This talk will show you how to get up and running from a true beginner’s perspective using NLTK and TextBlob to make a classifier that might tell you who’s writing Donald Trump’s tweets.
-
How to Trick SQL into Doing All the Work for You
Molly Leen
What do you get when you combine the power of Python, the load of healthcare big data, and the benefit of SQL’s COPY method? An efficient methodology to import that data into a database. This talk will demonstrate how and why I designed a file-like object to streamline the import.
-
I've Been Awaiting for an URL Like You
Brian Muller
The asyncio library in Python 3 is an amazing addition, but understanding how it works and why it’s so efficient can be challenging. This talk covers the basics of asyncio and takes a deep dive on what it was like to convert the InterPlanetary File System Python 2 library to async enabled Python 3.
-
Inside the Cheeseshop: How Python Packaging Works
Dustin Ingram
This talk identifies key tools one might encounter when distributing Python software, what they are used for, why they exist, and their history (including the source of their weird names). We’ll see how they work together, what it takes to make them work, and what the future has in store for them.
-
Interpretable Machine Learning: Methods for understanding complex models
Manojit Nandi
As machine learning models become prevalent, it has become increasingly important to understand how these models came to a particular decision.In this talk, I will discuss various methodologies data scientist can use to understand how black-box models created a particular prediction.
-
Keep it secret, keep it safe! Preserving anonymity by subverting stylometry
Robin Camille Davis
Can you ever really write anonymously? Forensic software can identify the author of an anonymous document just by noting unconscious style markers, like how often someone uses the word “if.” In this talk, I’ll show you how this is done — and how you could outsmart deanonymization software.
-
Large Scale Graph Mining with Spark: What I learned from mapping >15 million websites
Win Suen
Use the Internet? Fond of graphs? Then this talk may be for you! Learn how to build and explore graphs with Spark GraphFrames. I will be sharing tips, tricks, and gotchas I learned for conducting network analysis with Spark, and diving into the exciting problems you can represent with graphs.
-
Making Sense of Flask APIs A Billion Requests at a Time
Evan Morikawa
Learn how to scale Flask APIs and make sense of the data. The answer is a mix of team, tools, and process. I’ll demo logging, visualization, and alerting techniques that should leave you feeling confident your APIs are performing, and assured you can respond quickly if something goes wrong.
-
Memory Management in Python
Theresa Lee
Why does “a is b” evaluate to true if both variables are assigned to the integer 201 but not 498? When will Python still hold a reference to an object that has been deleted? How does Python’s garbage collection differ from other languages like Ruby? Learn all that and more in this talk.
-
MFA the Right Way: One-Time Passwords with PyOTP
Collin Stedman
Multi-factor authentication is a must-have for modern secure applications. Thankfully, with PyOTP, enabling MFA is a breeze! We’ll start by learning about the two algorithm options, HOTP and TOTP. Then we’ll live-code adding MFA to an application, complete with QR codes for syncing with your phone.
-
Not so fast: Understanding Latency in Asyncio-powered Systems
Mark Vismonte
At Instagram, we’ve successfully utilized python’s asyncio library to reduce the latency of our server side endpoints; however, understanding latency in an asyncio deployment isn’t so easy. In this talk, we’ll discuss the techniques we’ve used to measure and improve latency.
-
Open Source Policy Making - Challenges and Opportunities
Anderson Frailey
Public policy analysis has typically been conducted under a shroud of secrecy by three letter agencies and think tanks in DC using black box models. In this talk, I’ll cover the issues with this approach and the benefits and complications of moving toward open source policy analysis.
-
Pluggable Libs Through Design Patterns
Filipe Ximenes
In this talk I’ll will use real world open source libraries to walk the audience through 3 popular Design Patterns: Adapter, Strategy and Pipeline. Those libs heavily rely on patterns to allow flexibility and pluggability. Python Social Auth will be used to guide the presentation.
-
Practical Cryptography
Kelley Robinson
Crypto is used for a lot more than just currencies. This talk will dive into modern cryptography, the math behind how it works, and its everyday use cases. By looking at the origins of cryptography we’ll follow the progression of methods and algorithms as humans and computers evolved.
-
Pushing the Bounds with Descriptors
Owein Reese
In this talk we’ll explore designs that go beyond a basic templated @property. We’ll talk about using the descriptor protocol to encapsulate behavior, create persistent and immutable data structures and finally multi-level object hierarchies. The goal? To expand your pattern library tool set.
-
Python Grab Bag: A Set of Short Plays
Jason Owen, Sumana Harihareswara
A frenetic combination of educational and entertaining segments, as chosen by the audience! They’re all different - plays, monologues, physical demos, jokes, or tiny traditional conference talks - and the audience chooses which they want next from a menu of presentation titles.
-
Python Oddities Explained
Trey Hunner
Sometimes you’ll find what might seem like a bug in Python but sometimes these bugs reveal themselves to be misunderstood features. During this talk we’ll look at a number of Python’s unique features and quirks and attempt to re-shape our mental models of how Python works.
-
Scale Independent Python: How to scale your Python application without any code changes
Sean T Allen
Have you ever written an application only to find yourself rewriting it later so it can scale? Many of us have. In this talk, you’ll learn scale independent computing; what it is and how it can help you more easily scale your applications.
-
Serverless machine learning in production: manage models, not servers
William Cox
Putting machine learning models into production is difficult - especially for a team that isn’t cross-function and doesn’t have strong ops or software engineering support. We used severless technology to deploy a ML system that let data scientists rapidly put models they trained into production
-
Seventeen Million Lines of Python Later: Launching a Startup in an Investment Bank
Garrett Walker
In the wake of the 2008 financial crisis, Bank of America Merrill Lynch embarked on an ambitious plan to realign its sales and trading systems around the Python-based Quartz platform. More than half way through this journey, we have millions of lines of Python under our belt and major business deliverables behind us. This talk will cover the unique benefits and challenges of using Python at investment bank-scale, and how to make a startup initiative stick in the face of unrelenting impediments.
-
Software Freedom And Ethical Technology
Karen M. Sandler
-
Start ‘em young: Tips for teaching Python to kids
Gabrielle Rabinowitz
How can you teach Python to kids with no coding experience? Using the example of a 1-week coding camp at the American Museum of Natural History, we’ll share the power of combining coding lessons with scientific inquiry along with helpful tips and tricks to supercharge your education efforts.
-
The Automatic Computer and You: A Meditation Upon The History And Future Of Software Development
Glyph
-
The stories of the most infamous bugs
Ian Zelikman
Have you written software? Have you had mistakes or bugs in your code? I suspect the answer to both is yes. The topic of famous bugs in history has fascinated me for a long time, in this talk I will discuss some of the most famous ones and how we can learn from them.
-
The Sum of Nothing
Christine Zhang
1 + 1 = 2. How about 1 + NaN? Or NaN + NaN? Or NaN x NaN?
The answers, when evaluated in pandas, have changed over time. I’ll take you on journey through the fun-filled history of pandas’ development, the wacky world of math, and how the two work together (or don’t) when it comes to null values.
-
Tracking the International Space Station in Django with Redis-Queue and RQ Scheduler
Sam Agnew
Have you ever looked up at the sky and wondered if the International Space Station was flying by at that moment? In this live coding adventure we will cover the basics of scheduling tasks with RQ in Django by building a web app that sends you text messages whenever the ISS passes by your location.
-
Understanding The Black Magic of Python Wheels
Elana Hashman
Installing Python packages with C extensions on Linux can be a painful experience, but it doesn’t have to be! Come learn to harness the black magic of Python wheels, and you too can spare your users pain… for a price.
-
Using Python, Travis CI, and GitHub to Effectively Teach Programming
Gregory M. Kapfhammer
Have you ever wanted to effectively teach your students or colleagues about programming? Suitable for full-time educators and industrialists who instruct their colleagues, this hands-on talk will explain how you can teach programming using Python, GitHub Classroom, and Travis CI.
-
Vodka powered by Whiskeyberry PI
Maciej Polańczyk, Michał Gałka
This presentation will show you how to build your own Bartender who talks with you and what is the most important serves drinks for you! All you need is Amazon Alexa, Python Flask application, Raspberry PI and a few pumps. In the end of presentation, you will ask my Bartender for a whiskey drink!
-
We Are 3000 Years Behind: Let's Talk About Engineering Ethics
Hayley Denbraver
I am a former civil engineer turned software developer who will take the audience through how civil engineers developed their code of ethics. It has been a work in progress for over 3000 years! This talk will explore how software developers could approach engineering ethics and why we should.
-
What if Jane Austen had been an engineer?
Lacey Williams Henschel
Jane Austen said, “It is a truth universally acknowledged, that a single module in possession of a good function, must be in want of a test.” In this talk, we’ll discover how writing tips from your high school English class can make your code cleaner and clearer.
-
Write a Git Client from Scratch
James Powell
What better way to learn the fundamentals of
git
than to reimplement them yourself? In this talk, we will (hurridly) cover the theory behindgit
and build a minimalgit
client in Python from scratch without anything but the standard library and our wits! 100% live coded. Accept no substitutes.