Since 2010 I have worked as a software engineer at litl, a Boston-based software (and sometimes hardware) company. For the past few years I have been the team lead for our server team.
Before that I worked at ITA Software on operations infrastructure, and at Ximian and Novell on the Linux desktop and software management systems.
I have contributed to countless open-source projects over the years. Some are listed below, and much of my more recent work can be found on my GitHub page.
I live in Columbus, OH with my wife and kids. Previously I lived in Cambridge and Boston, MA and Kent, OH.
I’m an avid hockey fan who pledges allegience to the Boston Bruins and Columbus Blue Jackets. In the winter I also enjoy curling at the Columbus Curling Club.
Products and Projects
Room for More
Room for More is a mobile application that frees up space on your phone or tablet by moving photos and videos into the cloud.
I lead the development of the backend services that provide APIs for the mobile clients, receive and store photo and video uploads, transcode videos, and manage user accounts.
Imagefly is an on-demand responsive image service. Using a simple API encoded in Imagefly URLs, images can be transformed to different sizes, image formats, and quality settings. Images are then cached on a CDN for fast delivery to clients.
Woven was a photo aggregation service and mobile viewing app. Woven could pull your photos from more than a dozen services, including Facebook, Instagram, Flickr, Picasa, Google+, Shutterfly, SmugMug, and many more.
When pull requests are opened, Leeroy schedules a build in Jenkins. When status notifications of those builds are received from Jenkins, Leeroy uses the GitHub commit status API to update the pull request.
The litl webbook was a laptop with a completely rethought user interface focused around simplicity.
I joined litl shortly after the webbook’s initial release and contributed bugfixes to its Linux-based litlOS, and worked on the bridge between it and the Flash-based third-party developer API.
An unreleased follow-up to the webbook, the “ruler” project was to be a TV-connected computer running the same litlOS as the webbook.
I worked on all aspects of this project including user interface adjustments needed for viewing on a television, porting the existing software stack to a new hardware platform and Linux distribution, modifying X and Linux kernel drivers to support hardware, and developing firmware for our RF remote keyboard, trackpad, and accelerometer.
MBTA bus tracker
The MBTA bus tracker is a simple Google Maps mashup I wrote when the MBTA and the Massachusetts Department of Transportation first released real-time positioning data for some of its buses. I even got a writeup in the Boston Globe’s MetroDesk blog.
Beagle was a Linux desktop search system, similar to Spotlight on OS X, built on top of Apache’s Lucene indexer. Beagle supported an impressive number of data sources and formats, and was included in several Linux distributions during its heyday.
I contributed to the GNOME project over a decade, first as a teenager teaching myself Linux, open source, and good programming practices and later for my job at Ximian and Novell.
I presented at GUADEC, the GNOME European conference, a few times. I also co-authored the first draft of the GNOME Foundation Charter.
Mono is an open-source implementation of Microsoft’s .NET platform. I was an early contributor to the project, filling out some of its class libraries as a way to teach myself C#.
HAL originally stood for “hardware abstraction layer” but really was a device discovery and enumeration system for Linux built on top of D-Bus.
I was an early contributor and did a lot of work on the underlying architecture of the system, introducing “callouts,” porting it to use glib, and wrote the initial Firewire and printer backends.
D-Bus is an interprocess communication system built that today is a core part of Linux operating systems, in particular desktop environments GNOME and KDE.
I contributed features and bug fixes, and briefly co-maintained it.
This was largely an advocacy effort with some proof-of-concept code to tie together technology that was just becoming functional for the first time – things like kernel uevents, udev, and HAL – with higher-level Linux desktop components.
Netapplet was a simple GNOME applet for switching wireless networks. Later NetworkManager assumed this rule and far surpassed Netapplet’s humble abilities.
Red Carpet was a software management system for Linux. Initially it was a desktop application for installing and updating software as part of Ximian’s Desktop product. Over time its focus changed to centralized software management for enterprises and their large clusters of Linux desktops and servers.
I was an architect or contributor to just about every piece of the client-side code, including the packaging systems (both RPM and dpkg), the dependency resolver, the daemon which handled XML-RPC requests, and the command-line and graphical user interfaces.
A hardly-comprehensive list of a few talks I have given over the years.
Galaxy: UberHeroku, but for Docker Containers 10 July 2015GopherCon 2015 lightning talk Go for Pythonistas 23 February 2015Central Ohio Python Users Group meeting Introduction to Go 11 October 2014Columbus Code Camp Beagle: Free and Open Desktop Search 26 May 2006GUADEC 2006: Vilanoa i la Geltrú Too Many Metas: A high level look at building a metadata desktop 17 July 2007GUADEC 2007: Birmingham, UK