Justin Miller is an open source vet. He's the lead developer on the Mapbox mobile team, but he's been through the ranks. He worked on Linux.com, put in his time as a sysadmin, and then made his way into mobile development.
Now Justin is working at optimizing Mapbox's rendering technology and helping developers use its framework to join map data with all sorts of great geolocation purposes. He's talking at OSCON 2014 later this month about how the Mapbox organization runs like an open source project, and in the interview below, he discusses how that approach has made Mapbox the mapping tool of choice for big players like Foursquare and Pinterest.
What's a typical day at the office?
I work for Mapbox remotely, but we do have offices. We've got about 30 folks in Washington, D.C., 15 in San Francisco, and about a dozen of us are remote in the U.S. and Canada, Europe, and South America. We operate in a distributed manner, even when in person, largely using communication on GitHub, through many open source repositories, and some internal issues-only projects for operations, strategy, customer collaboration, outreach, and the like.
As far as a typical workday, I do a bit of customer support on our own site and on Stack Overflow for our mobile tools, spend some time strategizing with teammates, but mostly I'm found coding on mobile tools in Objective-C, C, and C++. I also do a fair amount of reading to see what else is going on in the company, whether that's peeking in on discussions—everything is open to everyone internally—or reading "devlogs" by my teammates, which are basically blog-caliber posts about recent work to the internal team. Very frequently, we will take those devlogs and massage them into a public blog post because they are so interesting and enlightening. A great example by my teammate Amit Kapadia is here: Debanding the world. We typically blog at least once a day with a lot of substance about new efforts, technical deep-dives, partnership launches, or other topics. So most days, I'm also either writing or helping copyedit a blog post, too!
Any new developments at Mapbox that you're excited about?
The most exciting thing to me right now is Mapbox GL, which we launched in early June on iOS, Mac, and Linux, and which is coming soon to the web and Android. It's a complete reimagining of our map rendering technology that moves from pre-generated raster imagery of maps to a lighter-weight vector format that is rendered on the client with OpenGL. We've always focused on custom design, interaction control, and offline capabilities with our mapping technology, but with Mapbox GL we are moving all of that towards a goalpost of design at 60 frames per second. We are hoping to unlock new possibilities, especially on mobile, with developers being able to join mobile sensor inputs like heart rate monitors, pedometers, and altimeters with custom map rendering to make the map a living, breathing canvas for things like fitness apps and other geolocation uses.
Your talk is about Mapbox and OpenStreetMap and how companies are switching to it over closed mapping systems. Can you give a few examples of projects using the OpenStreetMap library?
Sure. Some of the projects that are now using—and contributing—to OpenStreetMap by way of Mapbox include Foursquare for the maps that you checkin on, GitHub for the maps that help you visualize your projects' geo data files, and Pinterest for the maps that you pin places to. On the smaller scale, we've had apps that are all-in-one resources to the Tour de France, geolocation checkin games where your local convenience store is full of zombies during the apocalypse, and offline hiking maps for outdoor enthusiasts. We have a great showcase of beautiful uses of OpenStreetMap along with links to their project pages for more info or to try them out.
Mapbox is "running a business like you would run an open source project." Can you elaborate on what that means?
This is the meat of my talk, but basically, the organization is flat and open. People join in on projects based on interest and available time, or start their own projects based on an idea and the ability to convince a couple coworkers that it's a worthwhile effort. If you have an idea for improvement, talk is cheap and putting in the code to demonstrate its potential is preferred. It's a very exciting way to choose direction and participation and lets everyone engage based on their interests and skill set. And nearly everything we write, anything that's easily reusable by someone else, is completely open source.
What brought you to Mapbox and open mapping? What are some of your past jobs?
I've been in open source for a long time. In the late 90s, I worked for VA Linux Systems on the original Linux.com portal as the links manager, helping people find Linux and open source resources. I also cofounded a few startups where I was in charge of the web infrastructure, so I spent a long while as a sysadmin on Linux, Apache, MySQL, and various mail servers doing datacenter installs, including with Voxel.net, which was an early SourceForge and PHP mirror. I moved from there into sysadmin for non-profits and political campaigns, first as a consultant at another small startup and later on my own, where I also did a lot of freelance work on iOS and OS X as well as PHP development. When the iPhone and smartphones hit in 2008, I was already half a decade into open source Cocoa development, and that led me back to some contacts in the non-profit and NGO space who were moving towards open data-based maps and what eventually became Mapbox in 2010. I've been working fulltime on Mapbox since early 2011, and I've seen the company grow from about a dozen folks to over fifty today.
What's your preferred repository tool and why?
Git and GitHub. The integration between code, discussion, inline commentary, and notifications is superb. Mapbox runs on over 250 repositories for everything from code to office equipment buys to travel planning to business strategy.