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.
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.
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.
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.
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.
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.