What UNIX Cost UsLinux.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 COBOLPyCon AU, 2019 (Sydney, NSW, AU)
The Tragedy of systemdLinux.conf.au, 2019 (Christchurch, NZ)
How Much Do You Trust That Package?Linux.conf.au, 2019 (Christchurch, NZ)
WebAuthn: Multi-factor Auth For Everyonepurplecon, 2018 (Wellington, NZ)
The Tragedy of systemdSeaGL, 2018 (Seattle, WA, US)
WebAuthn: Multi-factor Auth For EveryoneSeaGL, 2018 (Seattle, WA, US)
WebAuthn: Multi-factor Auth For EveryonePyCon AU, 2018 (Sydney, NSW, AU)
The Tragedy of systemdBSDCan, 2018 (Ottawa, ON, CA)
A Brief History of I/OLinux.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/OSeaGL, 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 FreeBSDAll Things Open, 2017 (Raleigh, NC, US)
The Trouble with FreeBSDBSDCan, 2017 (Ottawa, ON, CA)
The Trouble with FreeBSDLinux.conf.au, 2017 (Hobart, TAS, AU)
Below The Line: Fixing The Voting Process With TechnologyLinux.conf.au, 2014 (Perth, WA, AU)
Keeping Current: Maintaining an internal forkLinux.conf.au, 2014 (Perth, WA, AU)
Making Your Application BehavePyCon AU, 2012 (Hobart, TAS, AU)