- 2018
- Why a no-moonlighting guideline benefits employees
- 2017
- Resetting a Wacom Bamboo Spark
- A PyOhio emergency
- Lessons learned losing
- Retiring brewdo
- Representing function properties in TypeScript
- Virtual network customization in VMware Fusion
- Security hygiene for software professionals
- 2016
- The security spectrum of curl | sh
- Easy secure web serving with OpenBSD's acme-client and Let's Encrypt
- Command injection, or how /bin/sh can rm -rf your server
- Date math across timezones with Moment.js
- "npm install -g" considered harmful
- The JavaScript Promises trilogy
- Precision decimal math in JavaScript with decimal.js
- 2015
- Developing on OS X inside Vagrant
- Swiss Cheese and Pair Programming
- Questions to ask when bringing in third-party code
- pyenv slides from PyOhio
- Tall trucks, low bridges, and iOS geofences
- Creating man pages in Markdown with Ronn
- Using reflection to test complex objects
- Getting started using C libraries from Swift
- 2014
- Trace writes inside Selenium tests
- Understanding the 3 main types of encryption
- Turning asynchronous networking inside-out
- sudoless Rails
- brewdo lightning talk slides from PyOhio
- octothorpe talk slides from PyOhio
- Introduction to Ansible talk