We have a lot of devices in our lab, and for whatever reason we’ve been slow to show them off or talk about how we built the lab. This post is the first in a series digging into what the lab is and some of the technical hurdles we’ve overcome.
We started on March 29th of this year with two phones, an original Galaxy S (T-Mobile Vibrant to be exact) with non-working buttons and an HTC Dream (Commonly known as the G1) with a cracked screen. Previous to that we had built AppThwack around emulators hosted on EC2. The emulator route ended up being very beneficial for us as transitioning to real hardware was easy, and we now have the luxury of using emulators, real devices, or a combination of the two.
In those early days we used an old laptop to host the handful of devices we owned, which we controlled using adb over USB connections. Not much has changed in that regard, although we’ve since upgraded the old laptop to a couple blade servers, and our USB hosting is now a maze of hubs and creative power solutions.
We get asked a lot about how we’ll handle device use as we get more and more traffic. Our current queueing mechanism allows us to distribute the load across our test bed as new tests pour in, starting tests as soon as the devices are available. In most instances wait time is less than five minutes, if not zero. As the great Donald Knuth says, “premature optimization is the root of all evil,” so although we have plans for handling various growing pains, we’ll address them as they become actual problems.
In just over two months we’ve gone from the two original phones to 41 phones and five tablets as of this writing with more on the way. Scaling has not been an issue for us so far, and that’s mostly thanks to the modular nature of our underlying platform, Trellis.
We also get asked a lot about where we get devices. Put simply, all over. We buy new phones from various retailers, scour eBay and craigslist, and we recently discovered the awesome service, Swappa.
As of today you can now see a real-time view of the devices we have, their status, and some general data about the lab. The astute among you may notice the ZTE Score is “Temporarily Unavailable.” It was a casualty of the weekend traffic, but rest assured a new one is on its way (Edit: As of June 13th it’s back online and available for testing).
In subsequent posts in this series I’ll explore how we select devices to add, how we deal with device stability, and take some better pictures of the lab.
Special thanks to Ben at Swappa for helping us out with device images. If you need a phone or tablet, definitely check his service out.