Since this is my first post on the Docker blog, I should introduce myself. My name is Steve Francia but you may know me better by spf13 which is my username on Twitter, GitHub and the address to my blog. I’ve recently joined Docker, Inc. as the chief of operations: open source. In this role, I’m incredibly excited to be joining the Docker project as the chief operator to work alongside Solomon Hykes who will continue to focus on driving the vision and strategy of the project in the role of chief architect and Michael Crosby who has just been appointed chief maintainer. My role in the company is to be 100% focused on the Docker project. I’ll be heavily focused on the user and contributor experience and making sure that both experiences are optimized for maximum productivity.
I’d like to share with you a bit of the journey I’ve been on and why being at Docker feels so great as my new destination. For as long as I can remember, I’ve been deeply interested in the developer experience. I’ve also been contributing to open source software since before it was called “open source”. I’ve always looked for opportunities to combine these two passions in my full time job and in 2011 MongoDB gave me that opportunity. At MongoDB, I served as the chief developer advocate responsible for the developer experience along with the developer community, documentation and a large portion of the engineering team.
MongoDB was a completely new approach to databases during an era when the traditional interface provided by SQL didn’t fit. Rather than develop a new language and make developers learn that, we focused on making the best possible developer experience. This meant developing idiomatic drivers which felt like a natural extension of each programming language. The only way to properly reach every language and provide the right experience was to work with the development community. We gave it our all working with the community to develop idiomatic drivers for over 20 languages. We embraced the many different developer communities and they embraced us back. Thousands of projects across dozens of languages using MongoDB emerged and hundreds of developers contributed back their time and talents.
At the time I really had no idea where these efforts would take us. I believed in our product and knew that if developers had a chance to use it they would as well, but I worried about the many challenges we faced. Our product was unlike anything that the market had ever seen and while we thought it was revolutionary, MongoDB was competing in the most heavily entrenched marketplace in software; dominated by a single company for 40 years. For as long as the industry had been around, decisions around which database to use were always made by the enterprise CTO/CIO who had the purchasing power. Engineers responsible for designing the system were frustrated that the database, the very heart of their application was out of their control. They wanted a database designed for the modern, cloud-scaling, high-performance Internet age.
Our approach to focus so much around the developers happened as the old rules around who made decisions were shifting. Stephen O’Grady, author of “The New Kingmakers: How Developers Conquered The World” best captures this shift as he writes: “Developers are now the real decision makers in technology. Learning how to best negotiate with these New Kingmakers, therefore, could mean the difference between success and failure.” Luckily, our radical approach worked and MongoDB captured the hearts and mind of both enterprises and developers alike.
While at MongoDB, I was exposed to many different programming languages. I became a language junkie studying each of the languages we supported. Of all these languages, one in particular stood out to me; Go. I knew to really learn Go I needed a project that I could devote time to. At the time, I was using WordPress to host my blog and grew frustrated with the frequent security updates. I also wanted the ability to edit my blog offline as I spent a lot of time on the train every day to NYC without Internet connectivity. I began work on a new website engine written in Go called Hugo. Pleased with the initial results, I released it as open source and invited the community to use it and help me make it even better. Today Hugo is the most contributed to community-backed Go project. It has a vibrant and active community and powers thousand of websites. It doesn’t hurt that it’s hundreds of times faster than other website systems and has the easiest install of any website engine. In addition to Hugo, I’ve been very active in the broader Go community including creating many of the most popular Go libraries and was invited to speak at the first GopherCon.
Being in the Go community is how in late 2013, I first heard of Docker. In the fledgeling Go community, Docker was proving that it was possible to use Go to create sophisticated and revolutionary software. Over the next year, Docker proceeded to capture developers hearts across the world. The parallels to MongoDB were obvious. Docker was a new technology that was completely changing how developers and systems admins worked. It was disrupting decades old established ways of doing things. MongoDB empowered developers; developers who were frustrated by the constraints imposed by conventional schemas; frustrated by expensive vertical scaling; frustrated by dependencies on an external team of DBAs. Applications for the Internet age needed the agility that MongoDB provided. While MongoDB enabled developers on the database side with its horizontal scaling came new infrastructural challenges. Docker is doing for applications and infrastructure what MongoDB did for databases. Instead of waiting days for a new machine or minutes for a new virtual machine, Docker enables developers to spin up a new container in a couple seconds. In Docker, developers saw the future of distributed applications and wanted it now. Cloud providers saw the demand which triggered the fastest adoption of a technology the industry has ever seen with offerings from every major hosting and cloud provider in what felt like overnight. Within 21 months of inception, Docker had been downloaded over 100 million times.
In Docker I see an innovative technology that is making developers–the aforementioned new kingmakers–lives materially better. In Docker, like Hugo & MongoDB, I see a vibrant community of passionate and engaged users and contributors. The concept of containers is decades old and linux containers have been around since the 2000s. It wasn’t until Solomon unveiled his vision of what we could do with containers that anyone paid attention. It was Solomon’s passion that inspired millions of developers to rethink how applications are created and deployed. The open design approach has attracted contributions from across the world and made Docker the most contributed to Go project. In my new role, I’ll be working with Solomon to take and actualize the vision of Docker to the next level. At MongoDB, I learned that a disruptive technology requires three things to be successful: 1. Meet developers where they are, don’t make them come to you. MongoDB provided natural feeling drivers in each programming language; 2. Providing an amazing contributor & user experience; and most importantly, 3. Inspire developers to take their applications to places they never thought of before. I’m looking forward to applying these principles and the lessons I’ve learned to make Docker an even better project. I would love to talk to you about how Docker is redefining community driven development and how you can be a part of it. I’ll be hosting a live Q&A session today at 11AM PST on IRC in #docker.