Understanding A/B testing through Monte Carlo simulation

July 28, 2014 | video + transcript | slides

As anyone with experience can tell you, the humble A/B test is loaded with complexity and pitfalls. Seemingly basic questions of experimental design and analysis are surprisingly difficult to get a handle on, even for those with a background in statistics. How long should I run my test? Which calculator should I use? What confidence level is appropriate for me? In this talk, I'll discuss my attempts to use Monte Carlo simulation to put these questions into a very practical context: how do various choices affect your ability to achieve a higher conversion rate when all is said and done? I'll sprinkle in some interesting statistics and engineering tips along the way.

Moving to Wyoming

December 12, 2013 | video + transcript | slides

The management of dependencies among classes is one of the most important (and underappreciated) aspects of object-oriented programming. In this talk I make a case for composition over inheritance and give a brief introduction to dependency injection. I then spend the rest of the talk outlining a step-by-step, Fowler-style method for migrating incrementally from a system built upon static binding of global state to one that uses dependency injection exclusively.

Distributed Web Crawling with Python and AWS, or, What I Learned From Compaq

March 1, 2012 | slides

In this talk I share some of my experiences developing a large-scale web crawler using Python and AWS. I give an overview of the Mercator web crawler, share some tips and hard-earned wisdom on implementing Mercator with Python and AWS, and end with some real-world results from our crawls.


ABBA: Split Test Calculator

2012 - now | Live demo | Github | PyPI

My attempt to build a better web calculator for split test (or any randomized binomial trial, really). Emphasizes confidence intervals, corrects for multiple testing, looks nice, fully linkable, transparent about the math it uses, open source.

Android Download Manager

2010 | Source | API

This is where I cut my teeth on dependency injection and TDD, refactoring the download provider and preparing it for release as a public API in Gingerbread.


2007 - 2010 | Project page | Paper

My first major project from my Google days.


complicated or not

2014 | Bandcamp | Amazon | Google Play | Spotify

Recorded in late 2013/early 2014 while I was playing with a couple of awesome musicians as Little Heart. I played the lead guitar parts, wrote some of them, and coiled and uncoiled a lot of microphone cables.

Classical guitar recordings

Valse Choro by Francis Kleynjans

Miami by Gerard Montreuil

Prelude by George Handel

Etude V and Etude VI by Heitor Villa-Lobos