Talks & tutorials

Invite me! 🎙️

If you would like me to speak at your event – be it a local meetup or an international conference –, drop me a line! Sharing knowledge is a passion of mine and public speaking is an excellent outlet for that.

Who wants to be a millionaire? ⚡️

EuroPython 2024

In this lightning talk, I hosted the first-ever Python edition of “Who wants to be a millionaire”.

In the fast-paced game I hosted, 4 volunteers tried to answer 4 impossible multiple-choice questions!

EuroPython 2024, 12-07-2024 • Main referenceTalk slides (low res PDF) • Online slides


Animations from first principles

EuroPython 2024

In this live-coded talk I answered the question of “how do you create an animation from first principles”?

We started out by only being able to draw pixels on the screen and by the time the clock was over, we could animate the rotating spiral that is shown on the side.

An attendee wrote

“The talk was really dynamic and the idea of programming while talking was awesome.”

EuroPython 2024, 10-07-2024 • Main reference • Secondary references here and hereLive-coded script


Reinventing the itertools wheel for fun and profit

EuroPython 2024

In this hands-on tutorial we reinvented the wheel by reimplementing several iterators from the module itertools. This was the excuse we needed to take a deep dive into some fundamental aspects of Python programming, like what are iterables and iterators, how the built-ins next and iter work, what the iterator protocol is, and more.

The tutorial was highly praised for the practical component, given that I prepared several practice exercises and the attendees enjoyed attempting them.


503 days working full-time on FOSS: lessons learned

PyCon Italy 2024

This was the third iteration of this talk of mine, which I presented to cover someone who had to cancel their scheduled talk.

Because the talk slot was longer than the two previous iterations, I managed to enrich the talk with more personal anecdotes and I also included a short section on how luck is not 100% random.

PyCon Italy 2024, 25-05-2024 • Main referenceTalk slides (low res PDF) • Online slides


Elegant (line of) code ⚡️

PyCon Italy 2024

In this lighthearted lightning talk I showed how to refactor a perfectly reasonable piece of code into an absolute masterpiece.

In this reprise of the lightning talk I first presented at PyCon Ireland 2023, I had to wear a special pair of glasses and present if I were a thug. I failed miserably but everyone got a good laugh out of it, so it ended up being a success!

PyCon Italy 2024, 24-05-2024 • Main referenceTalk slides (low res PDF) • Online slides


Descriptors made easy

PyCon Italy 2024

In this live-coded talk I walk the audience through a series of analogies between the built-in property and the way descriptors work.

I chose to introduce descriptors by establishing parallels with the built-in property because that is how I first understood descriptors. The enthusiastic nods while I was presenting and the feedback afterwards lead me to believe this was a good choice.


Counting to 698,438,863,898,480,640 in <1ms ⚡️

PyCon US 2024

In this lightning talk I try to tease the audience into wondering how one might solve large combinatorial problems in an efficient manner. To that end, I ask how many passwords there are with lengths between 8 and 10, with at least one upper case letter, at least one lower case letter, and one digit.

After an attempt at suspense, I show 6 lines of code and arrive at the answer of 698,438,863,898,480,640 in 0.4ms.

PyCon US 2024, 18-05-2024 • Main referenceTalk slides (low res PDF) • Online slides


The Pokémon trainer's guide to pandas & matplotlib

PyCon US 2024

This 3h tutorial focuses in teaching the fundamentals of pandas and matplotlib in a light and interactive environment. To distinguish this tutorial from the others you can find online, we used data from the Pokémon franchise, which led to a highly engaging session.

The overall consensus of the participants was that the tutorial was well worth their time and one participant even wrote:

“[...] I strongly feel that this tutorial is the gold standard for what teaching should be. [...]”, Gabe C.


525 days working full-time on FOSS: lessons learned

PyCon DE & PyData Berlin 2024

In this talk I share non-technical lessons I learned after working on a FOSS project full-time for +500 days. These lessons fall into 4 broad categories:

  1. how to get a tech job;
  2. how to manage your ego;
  3. how to interact with users; and
  4. how to work with a big codebase.

This is an improved version of the same talk I gave at PyCon Lithuania 2024.


503 days working full-time on FOSS: lessons learned

PyCon Lithuania 2024

In this talk I share my experience working on a FOSS project full-time for 503 days, sharing some of the non-technical lessons I learned along the way.

These lessons fall into 4 broad categories:

  1. how to get a tech job;
  2. how to manage your ego;
  3. how to interact with users; and
  4. how to work with a big codebase.

Attendees were fond of the stories I shared and my openness. In fact, Oleh said that

“[I particularly enjoyed the] Direct and open speech.”

PyCon Lithuania 2024, 04-04-2024 • Main referenceTalk slides (low res PDF) • Online slides


Hold my parentheses ⚡️

PyCon Lithuania 2024

In this lightning talk I draw from my APL experience to solve a simple coding challenge: given a string representing an expression, how can I determine whether the parentheses are correctly balanced or not?

In the end, we'll end up with two fun lines of code that use features of the Python language that are typically frowned upon!

Dave enjoyed himself and told me:

“That was a great lightning talk! Clever, entertaining, thought-provoking, and brief.”

PyCon Lithuania 2024, 03-04-2024 • Main referenceTalk slides (low res PDF) • Online slides


What are descriptors and why does Django need them

PyCon Lithuania 2024

In this talk, I use an example from the Django framework to motivate the need for descriptors in the Python language. Then, I proceed to explain the descriptor protocol, tying it to the original motivating example, through a live-coded demonstration.

The objective of the talk is to make sure the audience understands that frameworks (like Django) rely heavily on Python features (like descriptors) to operate their machinery.

PyCon Lithuania 2024, 03-04-2024 • Main referenceTalk slides (low res PDF) • Online slides


Describing descriptors

PyCon Ireland 2023

In this live-coding talk I wanted to explain how descriptors work by establishing a parallel with properties. Although properties are descriptors, this approach is how descriptors clicked for me and I was hoping it would help descriptors click for others as well.

Coming into the talk, I wasn't sure if I should present it as a live-coding demo, but Barry's feedback tells me I made the right choice:

“Used descriptors before but this [talk] clarified a lot. Live coding is hard to do, but makes it a better experience. Thanks for that.”


Elegant (line of) code ⚡️

PyCon Ireland 2023

In this lighthearted lightning talk I took a Python script for a tkinter calculator and continuously refactored it until the whole calculator was a single expression. We managed to get some laughs out of this ridiculous process, while we also explored a couple of interesting Python features like conditional expressions, Boolean short-circuiting, and assignment expressions.

I was very happy with my performance and so was James, who dubbed it a “killer lightning talk”.

PyCon Ireland 2023, 11-11-2023 • Main referenceTalk slides (low res PDF) • Online slides


How to draw a fractal with Python ⚡️

PyCon Ireland 2023

In this lightning talk my only objective was to show how easy it is to create stunning images with a little bit of Python and a little bit of maths.

With some live-coding, some terrible jokes, and a couple of typos, everyone enjoyed watching two nested loops and the innocent function that you see below turn into the colourful image depicted here.

def f(z, c):
    return z**2 + c


How to implement a Python-like programming language

PyCon Ireland 2023

In this hands-on tutorial we went through the four main components that let you implement a programming language like Python from scratch.

I aimed for an interesting and fun workshop and the feedback I received tells me I delivered it:

“I liked that we quickly got a very simple compiler and interpreter up and running, we did all of the fun stuff without too much of the boring repetitive parts.” — Samir

PyCon Ireland 2023, 11-11-2023 • Main reference (blog series) • Workshop materialsTalk slides (low res PDF) • Online slides


Mastering comprehensions

PyCon Portugal 2023

This practical workshop presented the audience with several exercises on comprehensions (list, set, dictionary & generator expressions) and idioms around their usage.


(More) Animations from first principles ⚡️

PyCon Portugal 2023

After my first lightning talk was so well-received, I came back to show a different type of animation where we make a recursive drawing that zooms in infinitely.


Comprehending comprehensions

PyCon Portugal 2023

In this talk I helped the audience discover the immense potential of Python's list comprehensions, dictionary comprehensions, set comprehensions, and generator expressions, as I presented them as an idiom that focuses on data transformations.

This talk complemented my tutorial on the same subject, but the talk hadn't been accepted for the original schedule. However, I stepped in when a speaker had to cancel a few days before the conference.


Animations from first principles ⚡️

PyCon Portugal 2023

In this lightning talk I show how to create simple animations in Python and pygame from first principles, from drawing a circle to morphing it into a figure eight.


How APL made me a better Python developer

Func Prog Sweden meetup

This talk is a personal account of the things that I do differently in Python after having learned APL, a language that seemingly had nothing to do with Python and nothing to offer with respect to my Python code.


What APL taught me about Python ⚡️

EuroPython 2023

In this lightning talk I wanted to share my personal story of how learning how to program in APL ended up teaching me things about Python.


You DON'T know comprehensions 🤷

EuroPython 2023

In this poster session, I make the claim that the vast majority of people don't know comprehensions well enough! Thankfully, this is very easy to fix!

  • Where: EuroPython 2023
  • When: 20th of July, 2023
  • Written version of the poster: book
  • Download the poster for yourself: poster

Dozens approached me during my poster presentation – which I repeated tirelessly from noon until 3 pm because people just kept showing up – and I am very proud to say that my poster (presentation) got a lot of praise.

But, most importantly, I got feedback from people that learned new things about list comprehensions thanks to my poster.


How dunder methods rule Python under the hood

EuroPython 2023

In this impromptu talk, I gave an introduction to dunder methods for a beginner audience.

This talk had not been scheduled in advance! There was a last-minute cancellation and the organisation reached out to me to fill in the slot.


Practical introduction to descriptors

EuroPython 2023

In this impromptu Python tutorial, I gave a practical introduction to descriptors.

This tutorial had not been scheduled in advance. The day before, I noticed there was an empty slot in the schedule. After talking to the organisers, we concluded it was OK for me to use that slot and so I whipped up a short, practical tutorial for descriptors!

I got incredible feedback! A participant, Sofia, wrote:

“Fantastic workshop about descriptors! I came out of it having learnt a lot about what goes on in the background. Really loved the friendly approach and the practical exercises with solutions so that everyone can follow. Keep going 🚀”


Build a terminal TODO application with Textual

EuroPython 2023

In this Python tutorial, I introduce people to Textual by building a TODO that runs in a terminal.

Alexander attended my tutorial and he wrote “Rodrigo did a really good job with the tutorial. I hope he starts teaching more regularly because his tutorial was fun and I learned a lot.”

Original photo by Braulio Lara.


Describing descriptors

PyCon Sri Lanka 2023

In this Python talk, I introduce descriptors and show they are not black magic.


Pydon'ts – Write elegant Python code v4

PyCon Portugal 2022

I was scheduled to give this talk in person but I had a family emergency and couldn't attend. Later, I recorded the talk at home and made it unofficially available online.

In this Python talk, I continuously refactored a piece of code by using Python features elegantly.


Comprehending Comprehensions

PyOhio 2022

In this Python talk, I teach the key ideas necessary for you to finally understand list, dict, and set comprehensions, and generator expressions.


Smoosh all the things ⚡️

EuroPython 2022

In this lightning talk, I show how functools.reduce is such an important function that we use implicitly when we call built-ins like sum and all.


Python objects under the hood

EuroPython 2022

This was my very first appearance at an in-person conference... And I just loved it...

In this Python tutorial, I show how Python uses dunder methods to define how objects (built-ins and custom objects) interact with the Python syntax.


Why mastering Python is impossible and why that's OK

University College London meetup

In this Python talk I share some insights on how to avoid learning plateaus in Python.

  • Where: University College London meetup, virtual
  • When: 29th of April, 2022
  • Written version of the talk: blog article
  • Slide deck: link

Why APL is a language worth knowing

FnConf 2022

In this talk I show how learning APL influenced the way I write Python code. For example, I show how APL helped me understand how list comprehensions work.


Pydon'ts – Write elegant Python code v3

PyCon Sri Lanka 2022

In this Python talk, I continuously refactored a piece of code by using Python features elegantly.


Fifty shades of sign

PyCascades 2022

In this Python talk, I went over +10 implementations of a very simple function while exploring elegance, simplicity, and some intricate Python subtleties.


Your first Python class & Python objects under the hood

New Zealand PUG

In this 2-part Python tutorial, I introduce classes in Python and then proceed to show how Python uses dunder methods to define how objects (built-ins and custom objects) interact with the Python syntax.


Pydon'ts – Write elegant Python code v2

Pyjamas Conf 2021

In this Python talk, I continuously refactored a piece of code by using Python features elegantly.


Pydon'ts – Write elegant Python code v1.1

DjangoCon US 2021

In this Python talk, I continuously refactored a piece of code by using Python features elegantly.


Pydon'ts – Write elegant Python code

EuroPython 2021

This was my very first conference talk and what I consider a great milestone in my career.

In this Python talk, I continuously refactored a piece of code by using Python features elegantly.


Implementing a neural network from scratch

EuroPython 2021

This was my very first conference appearance and a moment I have very fond memories of!

In this Python tutorial, I guided attendees in their journey to implementing a full neural network with nothing but NumPy.