I am a frequent speaker at technology conferences in the United States, Europe and Japan. My specialty is presenting difficult concepts in a way that is easy to understand.

I’m available for speaking opportunities, get in touch if you think I might fit the bill.

Caching Without Marshal @ RailsConf 2022

Marshal is Ruby’s ultimate sharp knife, able to transform any object into a binary blob and back. This makes it a natural match for the diverse needs of a cache, but with risks. In this talk I pry open Marshal to show it works and how our team at Shopify replaced it with MessagePack, a safer, more compact binary serialization format.

The Elusive Attribute @ RailsConf 2019

Ruby on Rails is famous for its “magic”, but there is very little out there explaining how that magic actually works under the hood. In this talk I gave at RailsConf 2019, I pick apart the magic underlying one of the most basic elements of Rails: its attributes.

Building Generic Software @ RubyConf 2018

In this presentation given at RubyConf 2018, I introduce the concept of Inversion of Control (IoC) through an example where we walk through the steps of building a framework. The framework ends up being a simplified version of Mobility.

Metaprogramming For Generalists @ EuRuKo 2018

Metaprogramming is the machinery that enables Ruby’s diverse gem ecosystem, its intuitive DSLs, and its flexible frameworks. But it is also demonized and misunderstood. In this talk, which I gave at EuRuKo 2018 in Vienna, Austria, I explain why metaprogramming is so important for building the generic components we depend on every day.

(See also the transcript of this talk.)

The Ruby Module Builder Pattern @ RubyKaigi 2017

Did you know that Ruby has configurable modules? One of the most interesting features of Ruby, the Module Builder Pattern is also probably its least well-known. In this talk given at RubyKaigi 2017, I explain this powerful feature through simple, concrete examples.