Facebook is growing in Seattle.
Last month, the social media giant opened the doors of a new South Lake Union building, which mirrors a similar complex it also owns across the road. In total, the company now occupies 18 buildings across Seattle, Redmond and Bellevue.
Facebook used the occasion to announce another milestone: the company now employs 5,000 people in the region, making Seattle Facebook’s second largest base after Menlo Park.
“We have a critical mass of engineers here in Seattle,” Vijaye Raji, Facebook’s VP of Entertainment who heads the local office, said in an interview with Built In Seattle. “That generally means that decisions are made here; ideation and prototyping happen here.”
Raji highlighted more than 20 Facebook products with local teams, including some — like Facebook’s Marketplace — that were dreamed up, prototyped, iterated and delivered entirely by Seattle-based teams.
To get a better idea of what it’s like to work at Facebook in Seattle, we asked engineers working on three different products — Messenger, Marketplace and Groups — to fill us in on what they’ve been up to.
Don’t Shoot the Messenger
The project: Imagine three friends in a group video chat, a functionality Facebook added to Messenger in 2016. Each of the participants is using decent devices with good network connections and excellent bandwidth, and therefore enjoys crystal-clear audio and video.
Then, a fourth friend joins the call. This friend is traveling in a remote part of the country without a strong connection. Their presence on the call drags the entire group’s video and audio quality down to suit that limited bandwidth.
“That’s not really a sign of connecting people together,” Director of Real Time Communications Infrastructure Mudit Goel said. “It’s probably a sign that three people are about to kick their fourth friend off the call.”
This dilemma goes to the heart of Goel and his team’s daily work on an infrastructure most Facebook users rarely consider while using its products.
“We can connect people all over the world, but we also need to talk about the quality of our conversations,” Goel said. “When you say ‘Hello,’ I want to see your lips moving in synch with your voice. That becomes a pretty important challenge.”
The solution: Goel said the problem has a number of possible solutions. But the approach his team landed on was a technique called simulcasting, wherein each device produces both a high- and low-quality stream at the same time. A user receives the stream that best suits their connection quality without ruining the experience for those with higher bandwidth.
“There are some trade-offs,” Goel said. “I’m trading off on battery because I’m sending two streams, and I’m trading off on my network because I’m sending more data. But these are things we can optimize against.”
Goel said his team uses controlled A/B tests to measure metrics like the star ratings users give after calls and the length and frequency of conversations.
“We use this data to refine our solutions and then roll it out to all our users,” Goel said.
Making the Marketplace
The project: Facebook’s Marketplace functionality has become a popular platform for exchanging goods and services. Greg Bigelow, a local software engineer assigned to the product, recently helped build out an updated discovery experience for one of Marketplace’s newer corners: rental property listings.
“While the current experience is good, we wanted to leverage new Facebook maps infrastructure to improve it — and set the stage for future improvements,” Bigelow said.
Those improvements include overlaying relevant information like crime data and neighborhood points of interest, he said.
You typically have a lot of freedom to decide what you’re going to build and how you’re going to build it.”
The solution: One of Bigelow’s main challenges involved taking a complex Android component written with a procedural API and exposing it as a React Native component with a primarily declarative interface.
“In the process, I had fun learning a bit about the inner workings of React Native and partnered with the maps infrastructure team in Boston to leverage their Android and maps expertise,” Bigelow said.
According to Bigelow, the team leaned on Facebook-created tools like React and Hack and received input from hundreds of employees throughout the project.
“One of the nice things about Facebook engineering is that you typically have a lot of freedom to decide what you’re going to build and how you’re going to build it,” Bigelow said. “That also means taking responsibility for the feature from conception through public launch.”
Getting into Groups
The project: A third major project the company’s local teams work on is Facebook Groups, which aims to help like-minded users find one another. But that end goal is hard to reach when connectivity issues disrupt the intended user experience.
That’s the situation Software Engineer Jiaqiang Men decided to take on. The team noticed that when users with slow internet connections tried to open Groups, they were met with empty grey boxes where scores of recommended communities should have been populating instead. Men’s solution was to eliminate extended load times by introducing client-side ranking into a user’s Groups homepage.
“We tested the beta version with a small group of users, and found early on that some folks couldn’t load the Groups feed,” Men said. “At first, we couldn’t reproduce the issue consistently to pinpoint the problem. We were able to overcome this by testing the entire data flow to fix suspicious code, and we verified our tests with a small amount of users.”
The solution: Once the problem had been identified, Men and his colleagues were tasked with decoupling the Groups feed from the strength of a user’s network connection. They used the News Feed’s architecture as a model for their work, and Men was responsible for building the user interface — and the dataflow to render it.
“I used Java for the coding, Litho for UI rendering, GraphQL for fetching data from the server and Flipper for debugging,” he said.
Men said the team redesigned the architecture of the Groups tab to allow the re-ranking of stories on the client side after arriving from the server. The page now requires all the necessary media before rendering each piece of the page, which Men said has at last vanquished those pesky grey boxes.
Men, who was a junior engineer while working on this project, highlighted the autonomy he said he feels during work.
“Before joining Facebook, I worked at companies that featured a top-down approach, relying on VPs and senior managers to determine larger goals that filtered down to the engineering team,” he said. At other companies, Men said, he wouldn’t have had the opportunity to own such a complex project.