Only a few years ago, 10 engineers were responsible for innovating, building and maintaining all of the products (a.k.a. features) on Facebook, including Profiles, Pages, Groups, Messages, Photos, and Events. These people were our first product engineers, a role that is a mix of generalist engineer, product designer, and product manager.
Our group is significantly larger now, and each of us is focused on one or two products across desktop and mobile. But the responsibility to make sure all of our products and apps succeed in tandem remains the same. The interdisciplinary work product engineering requires doesn’t exist at many companies, and we’re all stoked to have found this role at Facebook. We’re always seeking new teammates, but we’ve found that what we do often needs a little more explanation.
As product engineers, one of our primary considerations is to focus on how people interact with their friends while using our products, which is different from a user interface engineer who typically considers how individuals interact with an app. Product engineers at Facebook are also responsible for building in identity and privacy from the very beginning. These factors have wide-ranging implications for how apps interact with other apps, as well as on the mechanics of sharing.
And being Facebook, our apps have to scale from day one. With a community of more than 1 billion people, we’re creating products that will be used by vast numbers of people around the world but are designed for individuals to share with the people they care about the most. To do all of this, we work closely in small teams of a few product engineers, a designer and a product manager to build and then iterate so that we’re constantly improving and enhancing the product.
Being a generalist helps here. We’re responsible for all of the integration points of our products, so we’re often diving into many different parts of Facebook’s code base. We also need to be able to write for Android, iOS and web. We really rely on the resourcefulness and entrepreneurial spirit of people who can think broadly in this way yet dig into code and own what they are creating. There are so many different parts of the Facebook experience we can choose to work on, so it’s up to us to make sure we’re making as large an impact as possible, as quickly as possible.
For instance, the team building Groups consists of five people: three product engineers, a designer and a product manager. The Groups everyone knows today is far different from the original version. We rewrote the product at the end of 2010 to encourage communications among small groups of people. One of our responsibilities for this project was to make trade-offs in the interest of placing the most emphasis on building and developing features that would benefit these small groups.
For example, in order to encourage smaller, more active groups, we designed an invite flow that requires people to actively start typing the name of an invitee (which prompts a typeahead feature) instead of presenting a long list of clickable friends. What seems like a minor product decision actually resulted in people making very active decisions about whom to invite and largely avoiding bloated, inactive groups. This decision and others over the course of a few months culminated in the relaunch of Groups, which became one of Facebook’s most loved and used products to date.
Overall, our goal as product engineers is to create a product experience that takes precedence over the product itself. If you’re interested in working in small, cross-functional teams to build and improve products used by over a billion people, check out facebook.com/careers.