I use Python and Flask for most of my side projects. I'm interested in automating things that people do every day; developing tools to make writing web services dead simple; and evangelizing best practices to make it easy for developers to create products that are user-obsessed.


Cocktails with Landy


The most comprehensive cocktail database in the world.


JoyGram lets you send beautiful, personalized vintage postcards to anyone.


Lineup is a simple web app for creating or updating a Spotify playlist by just searching for artists. I use it to create lineups for music festivals or listen to songs from new bands. It was implemented by me, with design by my friend Adarsh Solanki.

Open Source


A library I wrote at Rover to enable StatsD metrics to be emitted at arbitrary granularity (instead of just the flush interval). Check out the READme for more info!


I currently work at where I drive site reliability, observability and monitoring.

I also worked at Amazon where I developed complex distributed systems, managed operations for important systems including Amazon's search services, and worked up and down the stack from changing the look and feel of the search results page to designing new schemas as part of a large-scale migration off of legacy services.

Before that, I developed an automated UI testing framework at Microsoft (similar to Selenium).


2020-01-31:Reflecting on our Python 2 to 3 Project (Rover Engineering Blog)

A summary of our successful Python 3 rollout and things we learned about managing large projects.

2019-04-08: Moving Safely to Python 3 (Rover Engineering Blog)

A discussion about Rover's strategy for migrating to Python 3 (a project I led).

2018-09-17: Going Green: Hardening Django Against Third Party Service Outages with gevent (Rover Engineering Blog)

This post discusses an approach we took to prevent outages in our third party service dependencies from taking down our entire webapp.

2017-09-25: Query Performance Omniscience in Django (Rover Engineering Blog)

This post introduces a metrics-based approach to understanding your Django application's interaction with the underlying database, and how you can use those metrics to improve your application's performance and database utilization.

2017-08-21: The Needle in the Haystack: Wrangling Celery Workflows (Rover Engineering Blog)

This post discusses techniques for tracing and understanding complex Celery workflows.

2017-01-12: Why do we cache?

Why is caching important to developers? This article describes the basics of caching, and shows some real data demonstrating the value of caching to applications.


Making Observability Frictionless

Dash 2020 (Virtual)

Speaker at Datadog's Dash 2020 conference about how we make observability frictionless at Rover. Talk Abstract

Building a Culture of Observability

PyCon 2019

Speaker at PyCon 2019 about Rover's particular take on observability and how we've built it into our engineering culture. Talk Abstract

Achieving Huge Performance Wins with DataDog

DataDog Summit Seattle 2019

Speaker at DataDog Summit Seattle 2019, talked about some of the ways Rover used DataDog to score some big performance wins. Also participated in a moderated panel.

Tips and Tricks for Building a Scalable Cloud Service

HackArizona 2015

I presented this tech talk to students, participants, and observers at the University of Arizona during the HackArizona hackathon. It follows a hypothetical service that struggles as it grows more popular, and describes some common techniques for keeping a service running as it scales.


Picture of Me

I'm an engineer living in Seattle, WA. I graduated in 2013 from the University of Virginia where I worked with Wes Weimer's research group on genetic algorithms to automatically find and fix bugs in code. While at UVA I was also a teaching assistant and tutor, and wrote a compiler for a simple object-oriented language.

After graduating I worked at Microsoft and Amazon and lived for year in sweltering Phoenix, AZ. While in Phoenix I co-taught a high school AP Computer Science course through the wonderful TEALS program. Now that I'm back in Seattle I volunteer as a TA for the Ada Developer's Academy.

Outside of software development I enjoy learning how to craft cocktails, playing violin in a metal band, going to music festivals, petting my cat, and studying movement. Currently I'm focused on boxing and weight lifting. In the past I practiced capoeira and gymnastics.

I currently work as a software engineer at



This is bold and this is strong. This is italic and this is emphasized. This is superscript text and this is subscript text. This is underlined and this is code: for (;;) { ... }. Finally, this is a link.

Heading Level 2

Heading Level 3

Heading Level 4

Heading Level 5
Heading Level 6


Fringilla nisl. Donec accumsan interdum nisi, quis tincidunt felis sagittis eget tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan faucibus. Vestibulum ante ipsum primis in faucibus lorem ipsum dolor sit amet nullam adipiscing eu felis.


i = 0;

while (!deck.isInOrder()) {
    print 'Iteration ' + i;

print 'It took ' + i + ' iterations to sort the deck.';



  • Dolor pulvinar etiam.
  • Sagittis adipiscing.
  • Felis enim feugiat.


  • Dolor pulvinar etiam.
  • Sagittis adipiscing.
  • Felis enim feugiat.


  1. Dolor pulvinar etiam.
  2. Etiam vel felis viverra.
  3. Felis enim feugiat.
  4. Dolor pulvinar etiam.
  5. Etiam vel felis lorem.
  6. Felis enim et feugiat.





Name Description Price
Item One Ante turpis integer aliquet porttitor. 29.99
Item Two Vis ac commodo adipiscing arcu aliquet. 19.99
Item Three Morbi faucibus arcu accumsan lorem. 29.99
Item Four Vitae integer tempus condimentum. 19.99
Item Five Ante turpis integer aliquet porttitor. 29.99


Name Description Price
Item One Ante turpis integer aliquet porttitor. 29.99
Item Two Vis ac commodo adipiscing arcu aliquet. 19.99
Item Three Morbi faucibus arcu accumsan lorem. 29.99
Item Four Vitae integer tempus condimentum. 19.99
Item Five Ante turpis integer aliquet porttitor. 29.99


  • Disabled
  • Disabled