I spoke at 20+ Python conferences around the world. Here are my presentations.

Get in touch if you would like me to present at yours.

Optimizing Your CI Pipelines

Take your Continuous Integration to the next level! Learn how to optimize your pipelines for faster and more efficient builds by making things start faster (caching, smaller containers), finish faster (failing early, splitting tests), and making more things run at the same time (parallelization).

Python CI 101: A Beginner's Guide to Continuous Integration

Streamline your Python development process with Continuous Integration. From choosing the right CI tool to implementing it in your project, this presentation will cover all the basics and best practices of CI, leaving you with a working setup that you can reuse in the future.

Writing Faster Python 3

A talk about source code optimization. How some common problems can be solved with different code structures, together with benchmarks and explanations why one way is usually better (and often faster) than the other.
This is a revised version of my very first talk that I created in 2016 - adjusted for Python 3 with new code examples.

Python Versions and Dependencies Made Easy

Presentation on using pyenv, virtual environments, and pipx to build an easy-to-manage Python development setup. Setup, where you can easily switch between different Python versions, and you don't have to worry about messing up packages in your projects.

9 Jupyter Tricks For Your Next Advent of Code

Every year thousands of developers try to solve the programming puzzles of the Advent of Code challenge. For many Pythonistas, their favorite tool to do that is the Jupyter notebook. Here are some cool tricks that can help you next time.

No video available

Lessons learned from recording my first programming videos

A handful of tips for people thinking about recording their first programming videos. What equipment you need, how to prepare for recording, and how to make editing much easier. And why you should consider allowing prerecorded talks at your conference.

Let's Write an IPython Extension (in IPython)

IPython is a Python REPL on steroids. It has many features, but you can easily add new ones by writing an extension if they are not enough. In this 10-minute-long talk, I will show you how to write one. We will build a simple code profiler that will measure the execution time of each command. And, for an additional challenge, I will do everything without closing IPython.

Modern Python Developer's Toolkit workshop

This is a tutorial for PyCon 2020 that I wish someone gave to me when I first learned Python.
Python is (relatively) easy and fun to learn, but there is a gap between "knowing how to write Python code" and "knowing the tools and good practices when writing Python code". This tutorial will try to bridge this gap. It's intended for beginners who know Python, but who are not sure how to write a Python project from scratch.

It's 2019 and I'm still using Python 2!

What will happen with Python 2 in 2020?
What are the risks of staying on the unsupported version?
What are the possible solutions (and their pros and cons)?
How to go through the migration process in a least painful way?

Wait, IPython can do that?!

A fast-paced, feature-packed overview of IPython REPL. You will learn about ?? prefix, magic functions (and how to write one), extensions, profiles, how to use it for debugging or profiling. We will install a custom kernel and run shell commands. Great fun for beginners and advanced Pythonistas!

Maintainable CSS

How can we make writing CSS easier with visual regression tests and functional CSS?

Writing faster Python

Did you know that Python preallocates integers from -5 to 257? Reusing them 1000 times, instead of allocating memory for a bigger integer, can save you a couple of milliseconds of code's execution time.
If you want to learn more about this kind of optimizations then, … well, probably this presentation is not for you :) Instead of going into such small details, I will talk about more "sane" ideas for writing faster code.