Accepted General Sessions

The Wild West of Data Wrangling

Sarah Guido

Data science introductory courses might give you the impression that dealing with data is neat, tidy, and simple. However, the world of data isn't that easy! I'll talk my way through three real-world situations where I've had to analyze messy data, to show you how I've dealt with it.

Saturday 10:15 a.m.–10:55 a.m. in Auditorium

Natural Language Analysis of Song Lyrics

Anton McConville

This session considers the influence that AI, and Natural Language Processing can infuse in web design, by demonstrating and explaining apps that explore psychology in song lyrics. We think about the themes of expression, reflection and literacy in data, design and development.

Saturday 10:15 a.m.–10:55 a.m. in Room 100

Testing the Infrastructure

Sean Marlow

With all of the options such as Salt, Ansible, docker, vagrant, public cloud images and etc. How do we ensure the integrity of our infrastructure? With Testinfra and IPA we can leverage Pytest to write integration/unit tests.

Saturday 10:15 a.m.–10:55 a.m. in Room 200

Workflow Engines Up and Running

Ian Zelikman, Austin Hacker

Join us for an introduction hands on tutorial of Python based workflow engines.

You will get to create, run and monitor a real time workflow example with two Python based popular workflow engines: Airflow and Luigi.

Saturday 10:15 a.m.–11:55 a.m. in Room 300

Stumbling Through Django and How Not To

Melanie Crutchfield

Are you a beginner worried about starting your first Django project? It can be so intimidating! Add in costly mistakes and you’ll find yourself scrapping your project and starting over like I did. Twice. (Okay, fine. Three times.) Come to this talk for a handful of tips, and a lot of high-fives.

Saturday 11:15 a.m.–11:55 a.m. in Room 100

Give Feedback Fearlessly

Aisha Blake

Constructive feedback can be difficult to receive gracefully, but it can also be extremely hard to speak up when we notice a teammate struggling. We don’t want to hurt anyone’s feelings or make things awkward. Come discuss a few different types of feedback, learn techniques for sharing effective feedback with team members, talk through an example scenario, and practice using small group roleplay.

Saturday 11:15 a.m.–11:55 a.m. in Auditorium

Git Internals

Camilo Payan

In this talk, we'll push back the curtain, and take a look at what git is doing when you type in commands like "git add," "git commit," or "git rebase." Understanding the data structures underlying git can help you in the long run when a git repository inevitably goes sideways and your job is to fix it with minimal data loss.

Saturday 11:15 a.m.–11:55 a.m. in Room 200

The Future of Python Dependency Management

Kenneth Reitz

Pipenv is the future of Python packaging — here, we'll go over the downfalls of our current solutions, and how tools like Pipenv solve them!

Saturday 1 p.m.–1:55 p.m. in Auditorium

Settlers of Catan - Calculating The Best Starting Places

James Dozier

Settlers of Catan. While being a simple game to learn, there's a lot of strategy involved. Using Python and our knowledge of statistics, we can determine what are the best spots to put our first two settlements.

Saturday 1 p.m.–1:55 p.m. in Room 100

Hands on Machine Learning with Scikit-Learn

John Berryman

After reading several books on machine learning I often understand the content but I am left with no idea of how to get started myself! Finally I found "Hands on Machine Learning with Scikit-Learn and Tensorflow" (O'Reilly). Modeled after the book, this talk provides a practical overview of Machine Learning. Attendees will leave with a clear starting point for their leap into Machine Learning.

Saturday 1 p.m.–1:55 p.m. in Room 200

Web Scraping Like It's Your Job

Trey Brooks

You're charged with collecting a bunch of data. You've found it on the web, but the pages are all clunky and can't easily be pasted into a spreadsheet. In addition, to get all the data, there's 10,000 pages you need to visit! What do you do?!? We'll cover both the basics of parsing HTML with BeautifulSoup and more robust practices leveraging the Scrapy framework.

Saturday 1 p.m.–1:55 p.m. in Room 300

Loop better: a deeper look at iteration in Python

Trey Hunner

What's the difference between an iterable, an iterator, and a generator? Do you know how to create infinitely long iterables?

Come to this talk to learn some of Python's slightly more advanced looping techniques.

Saturday 2 p.m.–2:55 p.m. in Room 100

Normal Form, Shmormal Form

Brian Rutledge

Relational databases are great for storing and modeling data, but in some cases, like reporting, it can become really hard to use data that has been stored in normal form.

I'll share a glimpse of how structuring data tables properly from a relational database for Python data service results in easier to read and reasonable code and faster execution.

Saturday 2 p.m.–2:55 p.m. in Room 200

Postgres at any scale

Craig Kerstiens

We’ll start with the basics you need to know as an app developer about interacting with your database, then dig into how you can start to analyze performance. We’ll look at things you need to know for a small application, then the things you should be cautious of as you start to layer in other items you need to be aware of for performance.

Saturday 2 p.m.–2:55 p.m. in Auditorium

Serverless Python in AWS

Andy Cowell

How can you run software without servers?! If you're curious about "serverless," this is the talk for you. Come for an overview of serverless technologies, and see how to build and deploy a global serverless application in Amazon Web Services using Python.

Saturday 2 p.m.–2:55 p.m. in Room 300

Why Generosity Turns To Rage, and What To Do About It

A. Jesse Jiryu Davis

On mailing lists, IRC, Stack Overflow, and bug trackers, we often act viciously toward newcomers. Why? If we intend to be generous, why do we lash out? I'll propose a theory for why generosity turns to rage, and a method for keeping our tempers and enjoying our interactions with beginners. We can cultivate diverse and welcoming communities by acting with true generosity.

Saturday 3 p.m.–3:55 p.m. in Auditorium

The best kept secrets of surviving as a newbie developer.

Nayonna T. Purnell

Being in the tech industry is a very rewarding and lucrative career. However, there are obstacles that aren't always discussed. Let’s quest through the journey of a first-year developer. Explore ways to avoid pitfalls and explore how to attain success.

Saturday 3 p.m.–3:55 p.m. in Room 200

Using Data Science to Identify Confusion Amongst Python Programmers

Kevin Moore

Using popular data science packages, we will scrape and analyze data from Stack Overflow’s most popular Python questions. We will determine which concepts Python programmers are the most confused about and then briefly discuss the top 2 or 3 concepts.

Saturday 3 p.m.–3:55 p.m. in Room 300

Bad Accessibility Happens – That Doesn’t Have to Be The End

Lindsey Dragun

Avoidance is not the answer—bad accessibility will still be there, losing you users and creating bad will. We’ll go through examples of what not to do and how to fix problems. We’ll also talk about compromises that can be made to appease stakeholders and others.

Saturday 3 p.m.–3:55 p.m. in Room 100

Visualizing Everything in Python

Katherine Brady

I will demonstrate the power of visualization to see data in a new way, and how python can display heterogeneous datasets. The talk is organized by data types. It starts off by visualizing missing data, goes through time, text, and spacial data, and finishes with network data. If you would like to follow along, please follow the instructions at

Sunday 9 a.m.–9:55 a.m. in Room 300

Teach your websites to call for help

Dan Poirier

Teach your web sites to let you know when they need attention, before your users do. You'll learn some battle-tested approaches to the problem, and some important things to consider when planning your own solutions.

This talk is not specific to any particular tools or development framework. It will be useful to anyone responsible for keeping web sites working.

Sunday 9 a.m.–9:55 a.m. in Room 100

Writing Idiomatic Python: Towards Comprehensible and Maintainable Code

Jeff Knupp

The huge influx of novice Python developers means that experienced Pythonistas have an obligation to teach this new wave of Python developers the Pythonic way to write code. Based on his book "Writing Idiomatic Python", Jeff Knupp will discuss what idiomatic Python is, why it's important now more than ever to learn, and the numerous benefits of doing so.

Sunday 9 a.m.–9:55 a.m. in Auditorium

Emotional Intelligence for Engineers

April Wensel

Whether you’re discussing tradeoffs with a designer, rallying support for a new tool, or reviewing someone’s code, emotional intelligence is essential for effective software engineering. This talk provides a framework for understanding your own behavior and cultivating empathy for others. You’ll leave inspired to apply these skills to unlock your full potential as a developer and a human being!

Sunday 9 a.m.–9:55 a.m. in Room 200

Deploying your Django Application to AWS ECS

Ernst Haagsman

Have you written a Django application which runs perfectly using runserver, but you'd like to know how you can share it with a couple thousand of your closest friends? Come learn how to use AWS's Elastic Container Service to host your application.

Sunday 10 a.m.–10:55 a.m. in Room 200

Alexa, a little help please?

Frank Valcarcel

Use a voice assistant to augment your worklife. Merge pull requests, manage deployments, get on-demand info on errors and exceptions, and do it all without costly context switches.

Sunday 10 a.m.–10:55 a.m. in Room 100

Wicked Production SQLAlchemy

Jason Myers

You’ve got queries and databases perhaps even migrations leveraging SQLAlchemy and Alembic, but how do you go fast... like Ricky Bobby fast? Let’s take a look at Query Pooling via gevent and query based caching via dogpile. With these two tricks, you can greatly change the way SQLAlchemy performs in production.

Sunday 10 a.m.–10:55 a.m. in Auditorium

Developing Microservices with Flask, React, and Docker

Michael Herman

In this tutorial, you will learn how to quickly spin up a reproducible development environment with Docker to manage a number of microservices. Once the app is up and running locally, you'll learn how to deploy it to an Amazon EC2 instance. Finally, we'll look at scaling the services on Amazon EC2 Container Service (ECS).

Sunday 10 a.m.–11:55 a.m. in Room 300

What To Expect When You're Expiring: Safety Rules For __del__

A. Jesse Jiryu Davis

When your code must do some cleanup task, it's tempting to write a del method. Dangers lurk there, however. You risk mysterious errors, memory leaks, and deadlocks. Here's three rules to live by when you're writing code for dying: access no globals, nor threadlocals, nor locks. We'll see the reasons for these rules, and learn to safely destroy Python objects.

Sunday 11 a.m.–11:55 a.m. in Auditorium

Getting started with Django's Authentication System

Julia Looney

Django’s authentication system is great out of the box, but how exactly does it all work together? I’ll be covering each aspect of Django’s authentication system, clear up some of its mysteries, and go over how it can all be integrated into your web app to make things go more smoothly.

Sunday 11 a.m.–11:55 a.m. in Room 100

Exposing a Neo4j Graph Database as a REST API with Flask

Blaise Gratton

After a crash course on Neo4j and the JSON API spec, these two worlds will be united by wiring up a Flask server to show how to represent graph data in a web context.

Sunday 11 a.m.–11:55 a.m. in Room 200

Pythonic Code Refactoring Session

Trey Hunner

During this tutorial we'll spend an hour "mob programming" as we refactor together. We'll have fun testing our knowledge of Python's more unique features as we transform messy code into code that is readable, clear, and sometimes even beautiful.

Sunday 1 p.m.–1:55 p.m. in Room 300

More testing with few tests: An exploration of property based testing

Derik Pell

Property based testing isn't new, but it is just starting to gain momentum, and rightfully so. This talk will look compare property based testing to example based tests such as unit tests, try to explain how to write good property tests and take a deeper look at what the Hypothesis property-based testing framework can do to help us maintain a test suite we can feel more confident in.

Sunday 1 p.m.–1:55 p.m. in Room 200

Chatbot-controlled Cloud Infrastructure Management in Python

Ryan Tuck

Our business analysts needed to run their growing Excel workbooks without crashing their laptops, and data engineering was tasked with building a solution while keeping costs low. The solution? A chat bot for managing overpowered Windows machines on our AWS cloud.

Sunday 1 p.m.–1:55 p.m. in Room 100

Creating a Bittorrent Client using Asyncio

Ahmed Abdalla

The purpose of this talk is explain the BitTorrent protocol and relevant Asyncio API needed to create a BitTorrent client that can actually download a “.torrent” file. The BitTorrent application will be built and presented as a set of steps to build a program that can download a file.

Sunday 1 p.m.–1:55 p.m. in Auditorium

Debugging Your Way to Carnegie Hall: A Critical Practice to Improve Performance

Chip Carnes

Often in programming, we run into problems that we set out to solve by debugging using various tools, but the way we debug is possibly more important than how we debug. Learn how to implement a habit of debugging that helps you improve your programming craft from principles honed in a career of music that took me to Carnegie Hall.

Sunday 2 p.m.–2:55 p.m. in Room 100

Building an Industrial Monitoring System using Python and Django

Michael Clark, Michael Hespenheide

Starting with a custom sensor hardware design, we built an industrial scale monitoring system using Django. We discuss the hardware design, software architecture, some implementation details, problems encountered, and lessons learned. The system has been in production for four years. This talk will benefit developers interested in Django and IoT-related topics.

Sunday 2 p.m.–2:55 p.m. in Room 200

Type uWSGI; Press Enter; What Happens?

Philip James

You're a pretty knowledgeable Python web application developer, but how does that web application get served to the world? For many of us, uWSGI is the magic that makes our application available, and in this talk we'll look at how uWSGI works with the OS and the networking stack to make the magic happen.

Sunday 2 p.m.–2:55 p.m. in Auditorium

Principles of network analysis with NetworkX

Stephen Bailey

Network analysis is a powerful and increasingly widespread way to analyze relational data, such as social networks. In this tutorial, we will learn the basics of graph theory and how to use NetworkX, a popular open-source Python package. We'll then apply this knowledge to extract insights about the social fabric of Tennessee MeetUp groups.

Sunday 2 p.m.–2:55 p.m. in Room 300


Site powered by Symposion.
"Python" and the Python logos are trademarks or registered trademarks of the Python Software Foundation, used by PyTennessee with permission from the Foundation