Facebook has always used and contributed back to open source software. But over the past few years the company has become much more active in the open source community, releasing more of its own internal tools and participating in upstream development on the Linux kernel and many other projects. As a result, the company can more easily attract and retain developers, has increased code quality, and sees faster innovation, says James Pearce, head of open source at Facebook.
“Although we are still launching a lot of projects (over 100 in 2014 alone!) we are also constantly monitoring the entire portfolio to ensure things deserve to be in there and are remaining healthy,” Pearce says in the interview below. “And I think that quality is probably what we are most proud of overall.”
Pearce will join Facebook’s engineering director Blake Matheny on stage at The Linux Foundation’s Collaboration Summit this month to talk more about how the company stepped up its open source participation and why it can work for other companies, too. Here Pearce gives us a preview of their keynote and tells us a little more about Facebook’s open source involvement today.
Linux.com: How does Facebook use Linux and open source software?
James Pearce: Facebook was built on open source platforms from Day 0. We like to describe open source as being ‘dorm-room friendly’ – at the time the site was first built, it was an extremely easy decision to make! And since then we’ve continued to build upon the entire open source stack, finding its limits, overcoming those challenges… and then sharing back the resulting improvements. Now, whether it’s web server or big data infrastructure, operating systems or mobile tools, JavaScript libraries or AI frameworks… we follow a similar cycle. There is open source software used throughout our entire technology stack, and we share back from the entire technology stack!
Beyond staying competitive in an OSS-leaning market, how does using Linux/OSS benefit Facebook and its goals?
Pearce: There are many important reasons for us to run a disciplined open source program – as well as just because, as above, we feel we have an obligation to! But it’s also a great contribution to our overall engineering brand: It helps to show people the complexity and scale of problems we routinely have to solve, and provides a window into the sort of engineers we are. We know for a fact that candidates considering joining the company also consider our open source efforts positively.
Honestly, the list of benefits goes on. We find we write better, cleaner code. We are forced to create more modular, pluggable technologies that can work both within and without the Facebook infrastructure. We get valuable optimizations and contributions back from the community. And on top of all of that, we know we don’t always have the best answers to particular problems: by sharing our challenges with the rest of the world we believe we can help accelerate innovation in the industry in general. Our mission to make the world more open and connected applies to open source communities as much as it does to the other 1.3B people we work hard to serve!
Facebook has renewed its participation in open source projects, including the Linux kernel, over the past few years. What caused this shift?
Pearce: As a smaller company, we had made efforts to open source things, but found it hard to keep sustained maintenance of some of them going – simply due to resourcing. Now we are larger and more mature, we knew we needed to reboot things a bit and restore a reputation for doing open source with diligence and discipline! Quite honestly, we didn’t even have an open source team for quite a while! But now we do, and we’ve been able to use a couple of techniques – in particular a helpful suite of internal tooling – to make it easy for engineering teams throughout the company to do the right thing by default. We’ll talk about this a bit more at Collaboration Summit.
How have things changed at Facebook since you’ve gotten more involved in open source?
Pearce: Facebook is constantly changing, so I assume you mean as a result of getting involved. 😉 I think the main shift has been to focus on the quality of our overall portfolio. We strive to ensure that most – if not all – of our projects are used in production (rather than just being hobby or hackathon projects!) and we are pretty honest about archiving out old projects that are no longer managed or that no longer serve an important purpose. So although we are still launching a lot of projects (over 100 in 2014 alone!) we are also constantly monitoring the entire portfolio to ensure things deserve to be in there and are remaining healthy. And I think that quality is probably what we are most proud of overall.