I use Python, Flask, and Django for most of my side projects. I'm interested in automating things that people do every day; developing tools to make it easy to build reliable web services; and helping other engineers grow.
Projects
Cocktails with Landy
Find craft cocktails you can make from anywhere.
JoyGram
JoyGram lets you send beautiful, personalized vintage postcards to anyone.
Lineup
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.
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!
Professional
I currently work at Rover.com 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).
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.
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.
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
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.
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 a 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 and mentor 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 Rover.com.
Elements
Text
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
Blockquote
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.
Preformatted
i = 0;
while (!deck.isInOrder()) {
print 'Iteration ' + i;
deck.shuffle();
i++;
}
print 'It took ' + i + ' iterations to sort the deck.';