This page lists some of the talks I've presented at conferences, user groups and the like.

Security for Python Developers

This talk covered a number general security concerns from a Python perspective and some very Python-specific security issues.

This talk was presented at the February 2024 Christchurch Python meetup.

Pytest is Awesome

A look at the popular Python testing framework, what makes it good and how to approach common testing tasks and problems. Also discussed are some potential areas of confusion around pytest's use of "magic".

This talk was presented at the August 2023 Christchurch Python meetup.

All About (Python) Iteration

A fairly deep look at different kinds of iteration in Python including iterators, iterables, generator functions, list expressions and the various language protocols involved with iteration. The while loop also gets brief mention.

Storing & Exchanging Data with Python

Mike Kittridge and I put together a talk for the Christchurch Python meetup covering numerous ways Python programs can store and exchange data. We covered the ins and outs of binary files, text files, buffering, text encoding, newline ending, mmap, pickle, JSON and friends, MessagePack, Protobuf, tabular data formats, multi-dimensional data formats and key-value stores (phew!).

New Features in Python 3.8 and 3.9

A tour of a host of things that appeared in Python 3.8 and 3.9. Python certainly keeps on evolving.

Never Write Shell Scripts Again

A discussion of the strengths and weaknesses of shell scripts and why you might want to consider using Python instead.

Go For Pythonistas

An introduction to the Go programming language from the perspective of a Python developer. Presented at the Christchurch Python meetup.

Advice for Success as a Technology Geek

A lecture I gave to University of Canterbury Data Science students about career in the workforce.

Python virtualenvs

A discussion of the problem that virtualenvs solve, some gotchas and the tools people use to create and manage them. Presented at the Christchurch Python meetup.

Python async

A tour of Python's (then) new asynchronous programming features. Presented at the Christchurch Python meetup.

IMAPClient: Easy IMAP for Python

An introduction to the IMAPClient project which I maintain. Presented at the Christchurch Python meetup.

Application Development Using IronPython

An introduction to creating desktop applications using IronPython. Presented at the 2nd PyCon Italia in 2008.

Python on the Openmono Neo FreeRunner

Developing applications for the (now defunt) Openmoko Neo FreeRunner open phone platform. Presented at PyCon UK in 2008.