Peeking Behind the Scenes of Fb Open Supply

Facebook’s most popular open source projects like React, GraphQL, and PyTorch are thriving and growing thanks to intense efforts by Facebook Open Source. The open source website showcases a handful of their hundreds of tools and libraries. It is also a source of multimedia content for the developer communities using our tools. Despite the social nature of open source, little is known internally about the open source tooling team. I joined this mysterious team three months ago and I’m excited to finally shed some light on the busy work behind the scenes of some of Facebook’s most iconic projects.

A little personal background

I joined Facebook in May 2021 as a rotation engineer (rEng). Originally from a non-technical background, I taught myself how to program using free resources that I have written about extensively on my personal blog. Simply put, open source software is the backbone of my career. Not only did tutorials, documentation, and source code give me the resources I needed to be successful, but before Facebook, I also worked for a well-known computer virology laboratory that makes open source software for scientists.

Needless to say, my idea was to join a team that makes open source software. During Facebook’s engineering boot camp, I went to the unique open source team in Seattle with an opening: Open Source Tooling. I fired my connection request, leaned back in my chair, and dreamed of one day releasing new React features to the world. When I met team manager Paul O’Shannessy, he quickly dismantled my flimsy assumptions because I wasn’t working on publicly available projects.

Instead, I would primarily interact with systems that are inevitably private. My daydream thought bubble has burst. Even if it wasn’t what I originally envisioned, I went on, still hoping to support open source in every possible way. Months later, I can pass on what I have learned. Before moving to software engineering, I worked in several restaurants. So allow me to metaphorically illustrate the role of the tooling team in the broader context of open source.

Welcome to the back of the house

The front of the house is half of a restaurant that caters directly to guests’ needs. The hosts, servers and bartenders all work to keep the customers excited and satisfied while the back of the house, i.e. the details of the implementation, is hidden from view. Open source tooling is the back of the house. Like the sous-chefs and dishwashers who invisibly support restaurants, we software engineers work behind the scenes to ensure that open source functions smoothly.

In short, the tooling team supports open source by providing seamless integrations between Facebook’s public and private codebases. While we focus our tools on our key customers, open source developer advocates and project supervisors, there are thousands of people on Facebook, from marketing and recruiting to engineering, who are contributing to open source without even realizing it. This is possible because of our invisible code synchronization.

Take a look at React Native, for example. If you look at the 23,000+ commits, you’ll see code written by hundreds of employees, some even without GitHub accounts, backed by ShipIt (a tooling team project). These commits represent the automated code synchronization between two version control systems (VCS): mercurial (Facebook’s scaled VCS) and git (the canonical industry VCS used by our public repository hosting site GitHub). As a result, thanks to our robust GitHub integrations, the engineers at Facebook are contributing to open source without ever deviating from internal processes.

The tooling team has a longstanding relationship with GitHub. Another way to use the GitHub API is to create a self-service portal for our open source customers. This tool manages security concerns, checks permissions and enables our customers to edit project settings or request tokens – all conveniently via an internal dashboard.

Inspired by iOS engineer Mayuko’s viral video, “A Day in the Life of a Software Engineer,” I bring you a typical day in the life of an open source tooling software engineer working on these internal GitHub repository dashboards is working.

A day in the life of an open source tooling software engineer

8:30 a.m. PST

I log into my laptop and scrape the sleeping dust out of my eyes as I wait for my poured coffee to finish. The dim morning light of Seattle falls through the window as I check my workplace messages, email, and the status of my open code reviews. I unlock a teammate’s work by checking their code.

9:45 am PST

I’m taking part in a Zoom call for the tooling team’s daily stand-up. Unlike other teams I’ve worked on, during the COVID-19 pandemic, the tooling team is using stand-up to connect on a personal level. Sometimes we discuss work blockers, but we often talk about movies, memes, vacations, and other incidental content. We save the serious conversation for our weekly team meetings.

10:00 a.m. PST

I pour myself a second cup of coffee and immerse myself in my chores for the day. Task prioritization looks very different from the two previous software development teams I’ve worked on. There is no backlog of tasks (well, not in the agile sense). In fact, our team is nowhere near familiar with agile: we have no sprints, no project managers, and no designers. We are only six engineers and our manager Paul.

How do we identify problems that we need to work on? As a self-directed team, the majority of our project planning comes from direct user feedback sessions with open source projects. We ask our customers questions like “What works well for you? What gaps do we need to fill? ”For example, in a recent session with one of our projects, we learned that additional, automated tools are needed that require more data to be added to our pipeline. Since we cannot meet the needs of every single open source project, we prioritize feature requests with the greatest impact. Our strong relationships with open source teams, Facebook’s culture of quick feedback and the activities in our internal support groups allow us to connect with open source teams and spot trends like GitHub promotions and anticipate them be. In essence, our team’s cultural values ​​are still closely aligned with those of the broader open source software community.

12:00 p.m. PST

I take my hour-long lunch break and decide whether to do another quarantine quesadilla or make some routine ramen.

2:45 p.m. PST

I have two 1: 1s every week: one with my rEng mentor and the other with Paul. We discuss my career goals and how I fit in with Facebook. Since I’m only on the team for a 6-month rotation, they give me projects to choose from. I express my continued interest in the UI / UX work and they ask me to provide a technical quote and suggested schedule for the features we discussed.

3:15 p.m. PST

I return to my remaining focus time. I’m currently redesigning the GitHub repository dashboard UI for self-service and adding new features. I write a lot of front-end code in React that I used for work before I came to Facebook. I used to always query REST APIs for my customer facing data needs, but here at Facebook we mostly get data from GraphQL APIs. As a full-stack software developer, I am learning both to write GraphQL queries and fragments with Relay and to write back-end GraphQL objects, root calls and mutations with Hack.

5:00 p.m. PST

I write down any remaining code changes and write down some notes to help me start over in the morning. I reflect on my progress for the day and think about my next steps in my project.

Close of business

Thank you for taking the time to learn more about the Open Source Tooling team at Facebook. I don’t know where the rEng program will take me next, but I’m grateful to have had this experience and insight into how the massive company Facebook Open Source works internally. The next time you use one of Facebook’s open source tools, hopefully you envision a team of in-house engineers persevering behind the scenes, advancing Facebook commit after commit.

If you would like to read more of my writings, please visit my Medium blog. Feel free to connect with me on Twitter or follow my projects on GitHub.

If you’re interested in a career as a rotary engineer on Facebook, the Facebook Rotational Engineering Program looks forward to hearing from you! Don’t miss the Facebook career portal to discover other opportunities here.

To learn more about Facebook Open Source, visit our website, subscribe to our YouTube channel or follow us on Twitter and Facebook.

Comments are closed.