Talks

Talk
Crabs in Snakes! Writing compiled Python modules in Rust

Python is great for productivity and readability. Rust is great if you want things to run really fast. Isn't it a shame we can't use both in the same program? It turns out we can! Learn how, with the help of some clever libraries, we can write compiled Python modules in Rust.

Crabs in Snakes! Writing compiled Python modules in Rust

Python is great for productivity and readability. Rust is great if you want things to run really fast. Isn't it a shame we can't use both in the same program? It turns out we can! Learn how, with the help of some clever libraries, we can write compiled Python modules in Rust.

25 May 2024 PyCon Italia 2024, Florence
 python  domain driven design  modelling
Crabs in Snakes! Writing compiled Python modules in Rust
Talk
Domain Driven Design and Python

Have you heard of Domain Driven Design? Not well known in the Python world, it's an influential development approach that aims to 'tackle complexity in the heart of software'. If you're working on complex problems, watch this talk: it may change the way you think!

Domain Driven Design and Python

Have you heard of Domain Driven Design? Not well known in the Python world, it's an influential development approach that aims to 'tackle complexity in the heart of software'. If you're working on complex problems, watch this talk: it may change the way you think!

25 Sep 2023 PyCon UK 2023, Cardiff
 python  domain driven design  modelling
Domain Driven Design and Python
Talk
Learning the Ropes: Understanding Python Generics

What if you don't want a Cat to be an Animal? What is the Liskov Substitution Principle? And what on earth is contravariance?

Learning the Ropes: Understanding Python Generics

What if you don't want a Cat to be an Animal? What is the Liskov Substitution Principle? And what on earth is contravariance?

20 Jul 2023 Europython 2023, Prague
 python  typing  mypy  variance
Learning the Ropes: Understanding Python Generics
Talk
Python and the Inversion of Control

Inversion of Control, in which software provides a mechanism for other code to plug into, is a powerful way of modularising code. It may sound complicated, but it can be achieved in Python with very little work.

Python and the Inversion of Control

Inversion of Control, in which software provides a mechanism for other code to plug into, is a powerful way of modularising code. It may sound complicated, but it can be achieved in Python with very little work.

19 Sep 2021 PyCon India
 python  architecture
Python and the Inversion of Control
Talk
How to write readable tests

So often, our tests are much harder to understand than the rest of our code. This is a shame! Find out how to write tests that act as living documentation from which you can gain deeper understanding of your system.

How to write readable tests

So often, our tests are much harder to understand than the rest of our code. This is a shame! Find out how to write tests that act as living documentation from which you can gain deeper understanding of your system.

13 Sep 2019 PyCon UK
 tests  readability
How to write readable tests
Talk
Exploring Python Dependency Graphs with Impulse

A quick demo of Impulse, a command line tool for visualising the architecture of any Python package.

Exploring Python Dependency Graphs with Impulse

A quick demo of Impulse, a command line tool for visualising the architecture of any Python package.

11 Feb 2019 London Django Meetup
 python  impulse
Exploring Python Dependency Graphs with Impulse
Talk
The Rocky River: How to Architect your Django Monolith

An architectural pattern for structuring larger Django projects.

The Rocky River: How to Architect your Django Monolith

An architectural pattern for structuring larger Django projects.

12 Dec 2017 London Django Meetup
 django  architecture
The Rocky River: How to Architect your Django Monolith
Talk
Handling Database Concurrency with Django

How concurrency is handled by Django, and by the database.

Handling Database Concurrency with Django

How concurrency is handled by Django, and by the database.

28 Oct 2017 PyCon UK
 django
Handling Database Concurrency with Django
Talk
Database Gotchas - Two Key Concepts You Can't Afford to Ignore

An in-depth look at database atomicity and concurrency in Django.

Database Gotchas - Two Key Concepts You Can't Afford to Ignore

An in-depth look at database atomicity and concurrency in Django.

15 Nov 2016 London Django Meetup
 django
Database Gotchas - Two Key Concepts You Can
Talk
It's About Time: Getting to Grips with Timezones in Django

Timezones can be confusing and annoying if you need to support them in a project. This talk runs through the tools Django provides for working with them.

It's About Time: Getting to Grips with Timezones in Django

Timezones can be confusing and annoying if you need to support them in a project. This talk runs through the tools Django provides for working with them.

12 Apr 2016 London Django Meetup
 django
It
Talk
A Touch of Class: Getting the Most out of Class Based Views

An overview of the key features of Django's powerful class based views, and why you should use them.

A Touch of Class: Getting the Most out of Class Based Views

An overview of the key features of Django's powerful class based views, and why you should use them.

19 Jan 2016 London Django Meetup
 django
A Touch of Class: Getting the Most out of Class Based Views
Talk
Encapsulated Django: Keeping your apps small, focused and free of circular dependencies

Structuring complex Django projects can be challenging. This talk introduces some tactics for breaking up the functionality into smaller apps, without introducing circular dependencies.

Encapsulated Django: Keeping your apps small, focused and free of circular dependencies

Structuring complex Django projects can be challenging. This talk introduces some tactics for breaking up the functionality into smaller apps, without introducing circular dependencies.

16 Nov 2015 London Django Meetup
 django
Encapsulated Django: Keeping your apps small, focused and free of circular dependencies