A relatively up to date list of technical talks our staff has given at various conferences, user group meetups, and other venues.


Keynote: Improving Contributor Experience & Broadening Contributor Scope

I'll be proposing a new category of code contributor I'm calling "Code Contributor Mentor", and also enumerating the need to recognize, recruit & support non-code contributors. As a largely volunteer-driven community, the Django code base and community rely on their contributors. In this talk I'll focus on two different categories of contributors the Django community needs: - Code Contributors - Non-Code Contributors The first part of the talk will propose a new category of code contributor: Code Contributor Mentors. These contributors are meant to provide an intermediate layer of support. They would benefit both current project maintainers (who are often overworked volunteers) and potential new contributors (who are often overwhelmed with how/where to start or continue). The second part of the talk will focus on the often-overlooked need for non-code contributors. Django (as well as Python and other related projects) are large enough that they need contributions beyond code. These contributions range from needs on the global level, on the DSF & PSF boards, to local meetups & conferences. But these needs are often overlooked since they're not code-related. The goal of the talk is to both raise awareness of issues, but also propose potential solutions.

Python Community Growth


What You Should Know About Django REST Framework

When I started writing Django REST Framework code in 2017, there was a lot I didn't know, like how class-based views worked and what a serializer was. After 3+ years of using DRF, I want to share the things I've learned that make writing DRF code easier and faster for me. You will learn how to save time and lines of code by using DRF's built-in viewsets (and what a viewset is), when to skip the viewset and use a built-in generic APIView, and how to add custom endpoints (actions) to your viewsets. You'll also learn how modular DRF can be when you customize built-in methods or use different serializers for different parts of your viewset, and how tools like Classy DRF can help.


Assets in Django without losing your hair

There's one part of building a Django app I hate: setting up handling of assets and media. There are so many moving pieces — static assets, asset compilation and compression, file uploads, storage engines, etc. etc. I can never remember how it all fits together. I wrote this talk for one very selfish reason: to document how this all works, in one place, once and for all. This talk is primarily intended for Django developers who want to build an asset pipeline that Just Works. The bulk of the talk covers front-end tooling (Webpack, PostCSS, Babel, etc.), so full-stack developers of any stripe will find something here, too.


"State of Django" Panel

Join us for a panel on the State of Django: the state of the Django codebase, but also the state of the Django community as represented by organizations like the Django Software Foundation, Django Girls, and DEFNA. Panelists include Frank and Jeff.

An Intro to Docker for Djangonauts

In this talk, you will step through the parts of a Dockerfile and learn what they do. Then, Lacey will introduce you to Docker Compose and explain why using it to run multiple containers is helpful. Finally, you will learn to run commands and execute scripts from the command line using Docker, how to enter a container and why you might need to, and what to do before you go home for the day.

What if Jane Austen had been an engineer?

As a developer with two English degrees, over the years Lacey has identified some concrete ways this education makes me a better developer. This talk will discuss how we can take lessons from literature to write more readable code, make better tests, and create more usable websites. At the end of the day, after all, our job is to write. Surely the techniques of great writers have something to teach us.

What the Wagtail Docs Don't Tell You

Wagtail is a great Django CMS, but getting started with it is a little intimidating. Wagtail has a ton of useful features that their docs don’t go into, so this talk is here to help! You’ll get to know the Page class, add redirects, make your Page relationships healthier, and handle users easily.

An Intro to Docker for Djangonauts

In this talk, you will step through the parts of a Dockerfile and learn what they do. Then, Lacey will introduce you to Docker Compose and explain why using it to run multiple containers is helpful. Finally, you will learn to run commands and execute scripts from the command line using Docker, how to enter a container and why you might need to, and what to do before you go home for the day.


End to End Django on Kubernetes

This talk slot was originally for Josh Berkus, but he injured his back the week prior to the conference so Frank stepped in with a pretty similar talk on the same topic, Kubernetes. The hardest thing about Kubernetes is getting a handle on the jargon. Frank walks you through all of the various bits to help you run a Django web application on k8s.


Entomology 101: Effective Bug Hunting

In this group of people, there is one thing we most certainly have in common: We're all bug hunters. Whether you've spent your last sabbatical in Borneo studying the embeddable iPython or you've only just begun your career and wonder at anyone using more than django-debug-toolbar, we can all learn from the latest trends and research in bug hunting. From Frank's his early childhood of having a simple ant farm, up to and including his long experience in the deepest, most pristine, and undisturbed wilds of the Internet, his experience has honed his abilities to find and identify bugs. Learn some of the best tools of the trade that will help in your daily hunts. Bug hunting tech you will learn about: - django-debug-toolbar - pdb/ipdb - using iPython embed - effectively using Python logging so you don't need to use the last quite so often Bug hunting is all about visibility. You may have the best net ever invented, but you can't catch a bug you can't see. Sure, you can spend all day turning over rocks and hope for the best or you can gear up with the tried and true night vision goggles all the pros use.


The Other Hard Problem: Lessons and Advice on Naming Things

In this talk, I'll review what has been written in the last few decades on nomenclature, go over the easy parts of right or wrong as defined in PEP8 and other style guidelines, and finally suggest some patterns and anti-patterns found in in today's Django and open source environment for us to adopt (or avoid!) in our everyday naming of variables, libraries and other "things".

Easy App Metrics

Collecting and visualizing metrics is hard right, so we'll do them later. Learn how to easily collect any server or client side metrics with Django, InfluxDB, and Graphana.

Smells like Teen Systems: Advice for raising healthy happy systems and getting to DevOps Nirvana

Advice for raising healthy happy systems and getting to DevOps Nirvana. Observations of what works and doesn't work when doing devops. Suggested tools and processes and how to get what you want out of management.


Python ProTips

There are tons of great little features, libraries, and useful tips out there. Python is a relatively easy language to learn, but the whole ecosystem is vast and it's really easy to not know all the cool tips and tricks. Frank gives you a few of the best ones that can vastly speed up your day to day development.

Real World Django Q&A

A panel at DjangoCon 2014 with, Andrew Godwin, Frank Wiles, Honza Král, and Peter Baumgartner. Have questions about getting better performance out of Django or scaling it up large? We've assembled a group of knowledgeable Django experts who have been there to answer the questions you have. While every site has its own challenges most follow similar patterns that are often easy to solve.

Django minus Django

Jacob Burch and Jacob Kaplan-Moss teamed up to discuss how to remove or replace aspects of Django that you don't like. Which are easy to do and which are harder. Topics include replacing Django templates with jinja2, replacing the ORM, etc. Given at the very beautiful venue Île des Embiez - France for DjangoCon EU 2014.

Frequently Missed Performance Gains

Frank discusses Django performance aspects that are easy to miss, but also easy to fix. Most without a single line of code changes to your project and can yield noticeable performance improvements to your Django applications.


Having Your Pony and Committing It Too

Jacob Burch's wildly popular talk on contributing to Django. Breaking all the rules on talks he goes from idea, to code, to contribution while haggling with core contributors in the audience live! Highly recommended.


A Gringo's Guide to Internationalization

Coming from a speaker who escaped a notion to "why would we need to translate?" this talk aims to show what actually goes into translating a website or app using Django's Internationalization tools. Covered will be an overview of batteries included, best practices and anti-patterns in using them, and some third party tools to help make your life escaping the myth of a Lingua Franca easier.

Django Developer’s Survival Guide

Frank will take us through a quick tour of the must have tools for the modern Django developer: South, Django Debug Toolbar, Celery, Fabric, Haystack, Tastypie, IPython, and so on.

Cache Rules Everything Around Me

Jacob Burch also gave this popular talk again at PyCon 2012 in Santa Clara.

Putting Python in PostgreSQL

PostgreSQL is pretty powerful all on it's own, but did you know you can use Python as a stored procedure language? Not only does using a familiar language make development easier, but you get the power of the standard library and PyPi to boot. Come learn the ins and outs of putting Python in your DB.

An evening with Jacob Kaplan-Moss, Frank Wiles, Alex Gaynor

An open Q&A discussion we did with Alex Gaynor at Boston Python.


Cache rules everything around me

This talk aims to briefly introduce the core concepts of caching and covers the best practices of using Django's cache backend. "Are you caching?" is a question asked early on in any yarn on web scaling advice. These conversations are much better steered by asking a more open and difficult questions "What is your caching strategy?" and “How are you implementing it?” This talk aims to briefly introduce the core concepts of caching and quickly moves to cover the best practices of using Django’s cache backend. We will let the audience know what the important questions to ask are, give them advice on how to implement the right answers, and when even the built-in core backend isn’t enough, point them to more advanced techniques and the right third party tools.

Secrets of PostgreSQL Performance

PostgreSQL is effectively the default RDBMS for Django. Learn the dark arts of optimizing this powerful database to be blazingly fast on your own hardware or in the cloud.

How to Sell Python

Panel discussion on ways to sell Python to people who are adverse to the idea.


NoSQL and Django Panel

A panel to discuss the future of no-sql/non-related databases in Django.

Alice in Performanceland -- Down the Rabbit Hole

While pre-optimization is often the root of all evil, knowing how to think about performance and scalability are important skills for any geek. Learn about all the knobs you didn't know you could or should tweak. Code profiling and dealing with your database aren't the only places to find performance gains. Performance and scalability are holistic endeavors.

Django Deployment Workshop

So you’ve written a Django site… now what? Writing the application is just the beginning; now you’ve got to put it into production! In this hands-on workshop we’ll walk through the creation of a full Django deployment environment running on a cluster of (virtual) machines.

Quick into to Django


Making your PostgreSQL database sing

Confessions of a life long Perl Bigot

Django from the perspective of the Perl world.

Snakes on the Web

Web development sucks. It’s true: web development, at its worst, is difficult, repetitive, and boring. The tools we have suck. At best, they make web development slightly less painful, but we’re a long way from making web development awesome. The history of web development tools is a history of trying to solve this problem. It’s a history of asking, “how can we make this suck less?” It’s important to understand this history, because we can look at past trends and use them to predict the future.

Basic Postgresql Administration

Basic PostgreSQL administration

MySQL vs PostgreSQL


Introduction to mod_perl 2.0