Mobile and Web Performance at Etsy

Posted by Mike Brittain on October 29, 2012
Misc / Comments Off on Mobile and Web Performance at Etsy

Over the past two years, I’ve been running a few teams in engineering that deal with Software Infrastructure — that layer of frameworks, services, and developer tools that “sits” right next to Operations. I mean that both figuratively and literally. These teams have grown and matured substantially. Last week we announced that Jason Wong would take over as director for those teams.

This change freed me up to focus on a few new things. I’ll be focusing heavily on Mobile Apps, Mobile Web, and Site Performance. [1]

Our Mobile Apps work is going strong, with a recently released update to our iOS app. Our Mobile Web work has been somewhat slow recently. Last year we did a fantastic job of rolling out the initial shopping experience for use on mobile devices. The progress since then, frankly, has been glacial, and I’m excited to be working on speeding up the pace. When I started working at Etsy in early 2010, the number of visits to the site coming from mobile devices was fewer than 6%. This group has grown significantly over the last two years. Mobile visitors now account for one quarter of visits to Etsy.com (which does not include usage of our iOS app).

There’s a natural fit between mobile and performance. There’s a high expectation from mobile internet users for high performance and low latency. Despite increases in cellular network speeds (3G, 4G, LTE), there are still significant hurdles for making a mobile web site (or mobile web app) feel quick and responsive. I frequently argue that the perception of responsiveness is one of the great advantages of building a native app — even if your back-end server response time is relatively slow.

Over the past year our web performance team, led by Seth Walker, has been publishing quarterly Site Performance Reports (e.g. June 2012 report). Expect to see us expanding these reports in the future to include performance numbers for Mobile Web access.

I’m incredibly excited about the challenges ahead and looking for talented mobile and performance engineers to join the team. If you’re interested in hearing more about what we’re up to, please contact me at mike@etsy.com.


[1] I’m also continuing to work with a couple of other teams at Etsy, including out Marketing Communications and Product Quality teams. (Not to leave them out!)

How do you use the word “millions” at work?

Posted by Mike Brittain on July 10, 2010
Misc / Comments Off on How do you use the word “millions” at work?

I published my first blog post on Etsy’s engineering blog today: Batch Processing Millions and Millions of Images.

Tags: ,

Moving Billions of Objects Within S3

Posted by Mike Brittain on May 25, 2010
Misc / Comments Off on Moving Billions of Objects Within S3

This is an interesting write-up on how to move enormous numbers of objects within S3.  I have a similar post coming up about large-scale batch processing that I’m looking forward to sharing in the next couple of weeks.  But give this a read.  It’s interesting!


Browser Testing for Mobile Web Applications

Posted by Mike Brittain on January 31, 2010
Misc / Comments Off on Browser Testing for Mobile Web Applications

Developers working on mobile web apps need to be able to test their apps or sites in all of the major mobile platforms.  Unfortunately, there are not a lot of good resources online for how to go about this.  You could pay for a service from a mobile testing company, like DeviceAnywhere, who provides access to a wide selection of real devices (using a virtual client).  Or you could go the free route by installing a variety of SDKs and mobile phone simulators.

Base Setup

I’m developing on a Mac.  Many of these emulators are Windows-specific.  Additionally, this could end up being a lot of work to setup, so putting all of these tools onto a Windows virtual machine will let me move the VM to another machine in the future and save me from reinstalling from scratch.  On my Mac I’m running Parallels Desktop with a copy of Windows XP.

The only exception is the iPhone SDK which includes a simulator for the iPhone.  The iPhone SDK is only available for installation on the Mac OS and I’ll be leaving it out of the instructions below.  I also haven’t installed or tested the 3.2 (beta) yet which includes an iPad simulator.


Big surprise that Java is used for some of these SDKs and simulators, so we might as well get started by installing the JDK and runtime if you don’t already have it installed.  You should be able to download a copy of the JDK from here:


I grabbed “JDK 6 Update 18”.


Download the Android SDK from Google’s Android Developer site and run the enclosed SDK Setup program.

Unzip the .zip package you download and put in a location you want to keep the files (perhaps within Program Files) and then run the SDK Setup program.

In the “Installed Packages” section of the setup program, click “Update All…” to download the platforms and APIs that will be run by the SDK.

To create an emulator for a specific version of the Android OS, select the “Virtual Devices” option, then click the “New…” button.  In the dialog box that opens, enter a name for your emulator and select a target OS (e.g. “Android 2.0.1”).  Then click the “Create AVD” button.  Select your new emulator from the list and click the “Start” button.  When the emulator starts you’ll find an icon for “browser” on the main screen.


In the past, I have setup Symbian emulators and SDKs to do local testing.  When I returned to their site to download new software I was pleased to find that they now provide a service for accessing virtual devices over the Internet using a Java application.  Visit http://apu.ndhub.net/ to register and access a wide selection of devices.



BlackBerry simulators for various models and OS versions can be downloaded from their developer site.  Each simulator is downloaded as its own installer package.  So download all of the  emulators you want to test (Storm, Bold, Pearl, etc.) and run their installers.


This seems simple enough, but if you start up one of these simulators and open the web browser you’ll quickly find that you’re missing a critical piece: network access.  To access the web from these emulators you need to also download the MDS Services Simulator package.  Find a link for this download from the resources page:


Also note that BlackBerry makes available some documentation specific to web application development for the BlackBerry platform.  You can find these resources at the address below (registration required):


Palm webOS SDK

The Palm SDK includes a web browser within its phone simulator which is useful for testing the browser that runs on the Palm Pre and Palm Pixi.

Go to Palm’s developer site and look for a button or link to download the SDK.

The emulator runs within Sun’s VirtualBox software.  There is a link from the Palm download site for downloading VirtualBox.  Follow the instructions and install VirtualBox first.

Next, download and install the webOS SDK.

Once you’ve completed the installation, you can start up Palm emulator from your Start Menu: Programs > Palm > SDK > Palm Emulator.

When you run VirtualBox, it may prompt you to download an updated version.  The Palm Emulator (as of January 30, 2010) will not run on the latest version of Virtual Box.  Stick to the version that you download from the Palm Developer web site (3.0.10).

Wrap up

This should get your started with a testing environment for a few of the top mobile browsers on the market today.

If you’ve got other tips to share about testing mobile browsers, share them in the comments below.

Tags: , , , , , , , , , , , ,

Learning is Hard

Posted by Mike Brittain on July 19, 2009
Misc / Comments Off on Learning is Hard

I used to do a decent amount of reading about e-learning during my grad school studies. I was a big fan of Clifford Stoll’s book, “Silicon Snake Oil.”. The premise was essentially that people keep trying to sell is on this idea that learning should be fun. Education can be built into some sort of game so that it becomes enjoyable and the things we dislike about learning will happen automatically while we are entertaining ourselves.

I just bumped into a great quote from Dave Benjamin that reminded me of all of this, and I wanted to share that because I think it’s important to remember when raising kids in this age:

“Learning is hard work. Making this seem untrue or avoidable is popular and lucrative. Often, the result of catering toward this interest is something other than learning.”


One tsp. Has Now Left the Building

Posted by Mike Brittain on July 19, 2009
Misc / Comments Off on One tsp. Has Now Left the Building

A little matter of house keeping…

The One tsp. blog entries have moved over to their own site at onetsp.com/blog.  I think I’ve covered all of my bases with the original links to posts here.  If you were an RSS subscriber, you may want to just resubscribe over there.

Velocity Schedule

Posted by Mike Brittain on April 08, 2009
Misc / 1 Comment

Velocity 2009
I’ll be speaking at Velocity on how to improve service with your CDN.  The talk is part of the web performance track.  A detailed outline of the talk is available on their site.  I’m pretty excited to share some of the tricks I’ve learned over the last 3 years with CDNs.  There’s also a great roster of speakers who I’m looking forward to seeing there.  Early registration is now open.

Tags: , , ,

David Lee Roth Ringtones

Posted by Mike Brittain on January 16, 2009
Misc / Comments Off on David Lee Roth Ringtones

Can you spell, “awesome”?

So we’ve been playing around with the David Lee Roth Soundboard all week, and honestly, it might be one of the funniest things I’ve seen in the last few years.  I figured the best way to continue enjoying Diamond Dave’s amazing vocals after this week is out would be to take these on my phone… yup, as ringtones.  So, for your enjoyment, the links below are for m4r (iPhone ringtone) and mp3 files.  These ringtones all come from the vocal track for Van Halen’s Runnin’ with the Devil.

Download or Play Ringtones

Aahhaaaaahhhaaa yeeeaah whoohooooo ooo ooo m4r mp3
Aahaaahh yeah yeeaaaaah yeaaah yeah m4r mp3
Ooh god, oh god I’m running aaahhhh yeah m4r mp3
Oooooooaaaahh yes m4r mp3
Yes I aaaamm m4r mp3

Let’s face it… these are ridiculous.

How to use

For iPhone users, you should be able to add these to your phone by saving the m4r files, then importing into iTunes: 1. open iTunes, 2. select File > Add to Library…, 3. select the files from wherever you saved them.  Connect your iPhone and check the “ringtones” tab to make sure you are syncing ringtones from your library to your phone.

If you have something else, you might be able to use the mp3 files for ringtones, but don’t ask me how. :)

By the way, thanks to Chad for giving me a heads up on how easy it is to make these for iPhones, and “davak” for the tech recipe with step by step instructions.

Tags: , , , ,

Ironic Bookmark

Posted by Mike Brittain on December 31, 2008
Misc / Comments Off on Ironic Bookmark

I really love the irony of using a postcard from the “Quarter Pounder” restaurant in Tokyo as a bookmark for “The Omnivore’s Dilema.”

…at least, I think it’s ironic.

Are the Tech Recruiters Hurting?

Posted by Mike Brittain on December 16, 2008
Misc / Comments Off on Are the Tech Recruiters Hurting?

I normally get a good handful of personal emails over the course of a week from recruiters interested in my resume.  This week I’ve noticed an uptick in emails from technical recruiters, and not personlized emails, either.  Over the last 3 days, I’ve received five email newsletters from recruiters — some who I am familiar with, and some I have never heard of.  Seems like the recruiting industry might be hurting and that everyone is really casting their nets wide to find any interested candidates or companies who are actually hiring.

Anyone else seen this?