All of these presentations were built with <3 with Bespoke.js with the exception of "Introduction to Arch Linux" (which was written with <3 using LibreOffice Impress).

Introduction to Arch Linux

An introduction to Arch Linux - why it's awesome, how to use the tools that it provides, and how to interact with the community.

The presentation will roughly cover:

  • The Arch Way (basic philosophy of the distro, etc.)
  • A basic outline of the system installation procedure
  • How to use pacman, the PACkage MANager, and the AUR, the Arch User Repository (where you get software not in the official repos)
  • How to engage with the community/get help (and not get flamed)

Presented at LinuxFest Northwest 2014.

Just Do It: The Approachability of Free Software for Beginners

We all know that one of free software's greatest strengths is the ability to do whatever you're interested in, without asking for permission. But even though we all know, we don't talk about it that much, and in particular, we don't talk about the significance of what that strength means for those who are just beginning their programming careers.

"Just Do It - The Approachability of Free Software for Beginners" will put forth the idea that the only tools that are approachable for beginners while still leading to the ability to produce what we would call "high quality" software are all free software tools. It will talk about the ability of free and open source software to inspire curiosity and interest and the role of that curiosity in bringing new programmers into our community. Finally, it will explore some of the areas that this model fails in, and what we can do to fix it.

Presented at SeaGL 2015.

Available in slide form and source form.

I've written several longer presentations for workshops run at the Recurse Center. All of the following were written for Security Club, which I ran weekly on Thursdays for three batches. "Security design" in particular was originally presented as a part of Beginner Club, which was the genesis for Security Club.

Security design

How to design programs securely

Webapp security

How to secure webapps

Operational security

How to run a secure production environment

HTTPS deployment

Basics of HTTPS and how to deploy it

Cryptography basics

Basics of cryptographic protocol design + Community = ♥ is a promising project to create a federated social network. It was abandoned for a while, but its maintainer has recently started transferring governance and code maintenance to the community. Come to this talk to learn details about what is, why it's awesome, and the future plans for it.

This was originally a lightning talk dealing mostly with the community, but was expanded to a full session. The extra time was used to talk a little about the history of where comes from and its API.

Original LinuxFest Northwest 2016 version available in slide form, source form, and on MediaGoblin and YouTube.

Also presented at LibrePlanet 2017; available in slide form, source form, and on MediaGoblin.

More presentations for workshops run or co-run at the Recurse Center, mostly as a part of Beginner Club. I have omitted workshops on intermediate Git usage (parts 1 and 2), operating systems, and the Linux command line because these workshops didn't have slides.

Webapp performance

Making webapps fast


How to publish a web app

Intro to free software/open source

Crash course on the basics of contributing to free software/open source

Stratic - the (super-modular) streaming static site generator

Do you like the idea of static site generators - programs that spit out HTML files that can be served by any old webserver, without invoking a huge steaming pile of PHP - but find that Jekyll is way overcomplicated? Wintersmith too monolithic? Perhaps Pelican isn't flexible enough?

If the above sounds like you, and you appreciate Node.js and the npm ecosystem's preference for small modules (aka the Unix Philosophy), you'll love working with Stratic. This talk will teach you about a new kind of static site generator that, instead of reinventing the world (or wrapping it with brand-new plugins), builds on top of existing npm modules in order to provide you with greater modularity, flexibility, and clarity than any monolithic static site generator can hope to offer. Best of all, there's no steep learning curve: if you already know Gulp.js - and it isn't that hard to pick up - then you already know how to use Stratic.

Presented at LinuxFest Northwest 2017.

Available in slide form and source form, as well as on YouTube.

CryptoParty Seattle

CryptoParties are a global movement of people who get together to teach each other basic privacy tools, in order to ensure their right to privacy from spying eyes like Internet Service Providers, corporations like Google and Facebook, and the government (including the NSA!).

Participants will learn how to protect themselves against mass surveillance with technologies like:

  • Tor Browser Bundle
  • Tor Messenger
  • Signal

No prior experience is required.

Presented at TA3M Seattle's August 2014, June 2015, and December 2016 meetings. (The above description was written for the most recent event; earlier CryptoParties covered PGP, used Pidgin instead of Tor Messenger, and had different honorable mentions.)

All three versions available in slide form.

There are also a couple smaller/less interesting presentations written as 10-minute topic introductions for Seattle Academy's robotics program.

RobotC basics

Introductory presentation on RobotC (back when FTC used RobotC - thank god those days are over!).


An overview of sensors available in robotics. Also written during the NXT/RobotC days.