| What UNIX Cost Us | Linux.conf.au, 2020 (Gold Coast, QLD, AU) |
| We Don't Need Another Password: MFA in the Apple ecosystem | /dev/world, 2019 (Melbourne, VIC, AU) |
| The New COBOL | PyCon AU, 2019 (Sydney, NSW, AU) |
| The Tragedy of systemd | Linux.conf.au, 2019 (Christchurch, NZ) |
| How Much Do You Trust That Package? | Linux.conf.au, 2019 (Christchurch, NZ) |
| WebAuthn: Multi-factor Auth For Everyone | purplecon, 2018 (Wellington, NZ) |
| The Tragedy of systemd | SeaGL, 2018 (Seattle, WA, US) |
| WebAuthn: Multi-factor Auth For Everyone | SeaGL, 2018 (Seattle, WA, US) |
| WebAuthn: Multi-factor Auth For Everyone | PyCon AU, 2018 (Sydney, NSW, AU) |
| The Tragedy of systemd | BSDCan, 2018 (Ottawa, ON, CA) |
| A Brief History of I/O | Linux.conf.au, 2018 (Sydney, NSW, AU) |
| You Can't Unit Test C, Right? | Linux.conf.au, 2018 (Sydney, NSW, AU) |
| A Brief History of I/O | SeaGL, 2017 (Seattle, WA, US) |
| You Can't Unit Test C, Right? | SeaGL, 2017 (Seattle, WA, US) |
| A Young Twitter Bot's Illustrated Primer (ebook) | North Bay Python, 2017 (Petaluma, CA, US) |
| The Trouble with FreeBSD | All Things Open, 2017 (Raleigh, NC, US) |
| The Trouble with FreeBSD | BSDCan, 2017 (Ottawa, ON, CA) |
| The Trouble with FreeBSD | Linux.conf.au, 2017 (Hobart, TAS, AU) |
| Below The Line: Fixing The Voting Process With Technology | Linux.conf.au, 2014 (Perth, WA, AU) |
| Keeping Current: Maintaining an internal fork | Linux.conf.au, 2014 (Perth, WA, AU) |
| Making Your Application Behave | PyCon AU, 2012 (Hobart, TAS, AU) |