Accepted General Sessions

Full-Stack Health: Healthier Coder, Better Code

Brandon Wanamaker

Living a healthy lifestyle can seem difficult & unattainable. In this talk, I'll show how we're like the systems we work with every day & share my personal story of continuous iteration to a happier, more performant life.

Saturday 11 a.m.–11:30 a.m. in Room 300

What's in your pip toolbox?

Jon Banafato

pip is a great tool, but dependency management doesn't stop there. I'll explore several tools that work with pip to make managing your dependencies easier, faster, and safer. I'll cover generating dependencies a better way, maintaining your requirements.txt for the long-term, and exploring existing Python environments. Afterward, you'll never want to pip freeze > requirements.txt again.

Saturday 11 a.m.–11:30 a.m. in Auditorium

Threading Yarn, Writing Code: What Traditional Arts and Crafts Can Teach Us About Programming

Anna Ossowski

You’ve probably heard people say that programming is an art and a craft but is it really? And if yes, does it have anything to do with the traditional arts and crafts like cross stitching, knitting, or sewing? The answer is yes, absolutely! In this talk we’ll explore the intersection of traditional and modern crafts and what they can learn from each other.

Saturday 11 a.m.–11:30 a.m. in Room 200

From Support to Engineering: Bridging the gap and growing together

Adrienne Lowe

How to land your first engineering job when you’re self-taught is one of the biggest mysteries in tech, but it doesn’t have to be. Let’s explore an option that’s not often discussed, but that has great success: starting in customer support! Learn how the experience of providing technical support & training helps aspiring engineers develop powerful empathy, communication, & troubleshooting skills.

Saturday 11 a.m.–11:30 a.m. in Room 100

How to Handle Money in your Code

Maxwell Collins-Shenfield

Dealing with money in python is easy to mess up, and the consequences can be lasting for your business and brand. Learn some simple rules for storing, processing, and displaying money the right way, with some real world examples using Django.

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

Overcoming the Challenges of Mentoring

Kim Crayton

​​Successful mentoring doesn't just happen, it's planned. We will discuss what mentoring is not, what mentoring is, factors for effective mentorship, and why it's important to the developer community.

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

Algorithmic Trading with Python

Kevin Najimi

Ever wonder what it takes to get started using Python to manage your investments and automate your trading? This demo-rich talk will walk through how to get started the right way and avoid some of the dangerous pitfalls.

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

A brief introduction to concurrency and coroutines

Eric Appelt

After a brief introduction to concurrency using a simple example, the talk will focus on understanding how coroutines have evolved in python through iteration protocol and generators, concluding with an explanation of the new async/await syntax through examples.

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

Let's Build a Hash Table, In C

Jacques Woodcock

One of the core data structures, especially for higher-level languages, though typically under the hood, let's look at what a hash table is, why and when we may use. Then let's build one.

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

"This Code Sucks" and other tales of developer hubris

Russell Anderson

I just inherited an old codebase. Ugh, this framework? These dependencies are way out of date. I am going to have to rewrite this whole thing.

Wait, stop. Just because I didn’t write it, doesn’t mean it sucks. Let’s think about the right way to refactor.

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

Python Coroutines: A Magic Show!

A. Jesse Jiryu Davis

First I'll write an async framework before your eyes. But the show's not over! I'll build coroutines with Python 3's "async" and "await". This isn't just a magic trick, you'll learn what "async" really means, how an event loop works, and how the Python interpreter pauses and resumes coroutines. A mysterious set of technologies becomes simple and accessible once you see a concise implementation.

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

Battling Unconscious Bias

Neem Serra

Unconscious biases affect our perceptions, decisions, and interactions every day. How do we address biases if we don't know about them? Even the most enlightened person will learn about some biases they didn't know they had and how to counter them.

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

Big Data Analysis in Python with Apache Spark, Pandas, and Matplotlib

Jared M. Smith

Big data processing is finally approachable for the modern Pythonista. Using Apache Spark and and other data analysis tools, we can process, analyze, and visualize more data than ever before using Pythonic APIs and a language you already know, without having to learn Java, C++, or even Fortran. Come hang out and dive into the essentials of big data analysis with Python.

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

Open Source Deployment Automation and Orchestration with SaltStack

Calvin Hendryx-Parker

Salt is way more than a configuration management tool. It supports many types of other activities such as remote execution and full-blown system orchestration. It can be used as a replacement for remote task tools such as Fabric or Paver.

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

Continuous Integration For The Win!

Randy Syring

Learn how to increase the quality of your code and improve team productivity by leveraging a CI pipeline to run tests, lint, and measure code coverage. Then, integrate all that knowledge right into a GitHub pull request for easy team review & verification before deployment. Finally, discuss the cultural challenges that can be met by those that want to integrate CI into their team.

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

Test your Automation!

Matthew Montgomery

Learn how to apply the principles of unit testing to your automation code. Using Molecule and Testinfra, this tutorial will provide hands-on guidance for testing an Ansible role.

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

Helping your Manager be a better Leader for you

Christopher H. Laco

How can you be a better manager? How can you help your manager be a better manager for you? In this talk we'll talk about these things and build a better bridge between developers and their managers so we can build stronger teams together from the bottom up.

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

Deploy an SSL-secured Flask microservice with a free certificate from Let's Encrypt

Daniel Pritchett

In this session you'll see how you can quickly easily deploy your own free SSL certificate using the Caddy HTTP server. We'll be securing a simple web app — a dice-rolling microservice written in Python with the lightweight Flask web framework. If you've been curious about Let's Encrypt, Flask, or microservices, come on by!

Sunday 11 a.m.–11:30 a.m. in Room 300

The Reality of Developer Burnout

Kenneth Reitz

  • Burnout is real
  • Some 410 GONE examples
  • My personal experiences
  • tips for avoiding

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

Lights, camera, action! Scraping a great dataset to predict Oscar winners

Deborah Hanus

Using Jupyter notebooks and scikit-learn, you’ll predict whether a movie is likely to win an Oscar or be a box office hit [1]. 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. [1]

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

It's time for Functional Programming! Maybe.

Derik Pell

Functional programming is arguably the biggest buzzword in programming these days and with good reason since it can reduce lines of code while adding safety and efficiency. In this talk, we'll get an understanding of the foundations of FP, look at what python does and does not have to help us out, and try to decide if and when it's a good idea to use these FP concepts in a pythonic environment.

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

What Time is it Anyway?

Greg Back

This talk will provide an overview of dates, times, and timezones, and why they can cause problems in real life and in Python programs. Solutions and helpful hints will be provided that use both the standard library and third-party packages like pytz and python-dateutil.

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

Speedy Delivery - Docker based Application Deployment Pipeline

Jason Greathouse

How LeanKit uses Docker to build, test, deploy, promote and sanely manage our Microservices. Live demo/walkthrough of our application pipeline and tools we use.

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

Readable Regular Expressions

Trey Hunner

What are regular expressions, what are they useful for, and why are they so hard to read? We'll learn what regular expressions are good for, how to make our own regular expressions, and how to make our regular expressions friendly and readable (yes it's possible, sort of).

Sunday 1 p.m.–2 p.m. in Room 300

Robot Fight: A Study of Genetic Algorithms

James Dozier

Gronk is a master Goblin Robot Builder. His bot, ZapPow, is the undefeated champion of Robot Fight!, the ongoing Goblin robot tournament. (Goblins aren't great a naming things.) Where Gronk is a master builder, the Dorklings aren't that great. When they first build their bots, they just throw random pieces together. But they have a scheme, a way to work together to eventually overthrow Gronk.

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

BDD To the Bone: Using Behave and Selenium to Test-Drive Web Applications

Pat Viafore

Have you ever felt that unit tests just weren’t enough? It feels like something always still goes wrong when your customers start to use your application. All your unit tests pass, so what's going on? In this talk, we’re going to look how to use the behave library to explore behavior driven development as well as the selenium library to control your web application through a browser.

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

A simple search engine in Python

Jason Orendorff

Let's write a search engine from scratch in Python!

We'll see how search engines work. We'll use Python dictionaries and lists in combination, work with text and binary files, even do a touch of math. And we'll learn what makes a data store fast.

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

The Python Deployment Albatross

Cindy Sridharan

The Python packaging ecosystem has evolved a lot in the recent years, with better packaging formats and tools available to us that didn't exist 5 years ago. In fact, it's a bit of an embarrassment of riches compared to what we had 5 years ago.

Distutils, setuptools, pip, virtualenv, eggs, wheels, pex ... there's absolutely no shortage of tools available to package and distribute Python artifacts. Furthermore, the advent of Docker in the recent years has brought a renewed focus on containerization and how Docker and other technologies in the ecosystem can be best leveraged to package and ship Python applications. Most Python deployments in the wild use pip with virtualenv or more recently Docker, but there appears to be a lot of misconceptions around swapping out one for the other. There's even talk on how Docker is well-suited to replace existing tools in the ecosystem like virtualenv.

Sunday 3 p.m.–3:45 p.m. in Room 100

Elasticsearch in an Afternoon

John Berryman

This talk covers the ins and outs, ups and downs of Elasticsearch and search technology in general. Attendees will leave with another useful tool that can be applied to their own problems.

Sunday 3 p.m.–3:45 p.m. in Room 200

Stability and Capacity Patterns

Brian Pitts

At Eventbrite, engineers are tasked with building systems that can withstand dramatic spikes in load when popular events go on sale. There are patterns that help us do this. Come learn about these patterns, how Eventbrite has adopted them, and how to implement them within your own code and infrastructure.

Sunday 3 p.m.–3:45 p.m. in Auditorium

Alexa Doesn't Even Have Any Skillz

Jason Bynum

  • Overview of Alexa Skills
  • Build a sample skill in Python
  • Deploy skill to an AWS Lambda
  • Test skill in the Alexa Developer Portal
  • Test instructor skill live with an Echo Dot.

Sunday 3 p.m.–3:45 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