What What Was It Like Working for Facebook, 2012-2019

I was an iOS engineer at Facebook from 2012 until 2019. I joined a few months after the Facebook IPO, when pundits worried if Facebook would survive the transition from the web to mobile computing. In fact, I probably got my job precisely because pundits (and company leadership) worried that Facebook might not survive the transition from web to mobile computing. In 2011, realizing that the company was staffed with backend and web engineers in a world that was increasingly shifting to smartphones, Facebook set up specialized recruiting pipelines for iOS and Android engineers. In the summer of 2012, I’d been a full-time developer on the now-defunct Urbanspoon restaurant review and recommendation iPhone app for about nine months. That might not sound like a lot of experience… but it was nine months more iPhone development experience than most of the engineers at Facebook at the time.1 It was enough to get me an interview at Facebook. Since the company was busy vacuuming up all of the iPhone engineers it could find, I somewhat amazingly got a job offer. I started in October.

A collection of cameras on a shelf

I never worked for Instagram, but I always loved walking by their desks. Their section of the campus was always the best decorated.

Every engineer at Facebook started in “bootcamp,” which could last somewhere from six to nine weeks. Bootcamp gave incoming engineers time to learn the tools and processes used at the company; it was a time to learn and to make sure you were ready to be productive when you joined a team. Bootcamp was also a deliberate attempt to maintain company culture in its “hypergrowth” phase.2 I worked in Facebook Seattle, which was hiring a lot of ex-Microsoft and ex-Amazon engineers. Bootcamp tried to make sure that Facebook Seattle felt like Facebook and not an outpost of Microsoft. Bootcamp also served to match incoming engineers with available positions — kind of like sorority rush. Most engineers who start at Facebook don’t know what team they will be joining when they sign their offer letters. Instead, during bootcamp, incoming engineers hear about teams with openings and are encouraged to try working on a few different teams to find a good fit. Unlike most incoming engineers, though, I was “pre-allocated” — when I started, I knew I would be joining the Seattle outpost of the Facebook for iPhone team. Still, everyone encouraged me to take my time in bootcamp. “It’s the best time to see the scope of everything happening inside the company,” my first manager advised me. “When you leave bootcamp, you’ll be heads-down on our team’s problems. Take advantage of this time.”

Many years later, I was a bootcamp mentor, and I passed along that advice to new hires. I also remember some simple things I, and other bootcamp mentors, did to subtly communicate Facebook’s engineering culture to new hires. For example, we made sure to show new people the vending machines throughout campus, stocked with things like keyboards, phone chargers, noise-cancelling headphones… if there’s something you needed to be more productive, there’s a good chance a vending machine would have it. You could just walk over and get it with just a swipe of your badge. The subtext: If the company can spend money to make you more productive, it will.

A Facebook vending machine

A Facebook vending machine. Source: The Atlantic.

More importantly: we tried to make sure that folks pushed a change to production within the first week or two. Most people found that terrifying. Brand new to the company, learning the ropes… and making a change that’s potentially visible to a billion people? What if you make a mistake and a billion people see it? Our job as mentors was to make sure that people didn’t let that fear stop them. Facebook took the “move fast” part of engineering extremely seriously. Chuck Rossi, head of release engineering when I was there and an absolute company legend, gave a talk to our bootcamp class. He told us how important it was for engineers to be available to support and debug any issues that may arise when trying to deploy their code to production, and to take all reasonable steps to verify your work before it’s deployed. But if there are bugs? “So what?” he said. “It’s not like we’re trying to land a spacecraft on the moon.” Everything in Facebook’s move-fast engineering culture depended on speed, and we needed new engineers to understand that. Sometimes you shipped code with bugs, yes, but Facebook’s engineering tools made it really easy and fast to ship bug fixes, too.

I have enough self-confidence to avoid imposter syndrome.3 My first year at Facebook tested me, though. My first two changes to Facebook for iPhone needed to get reverted for one bug or another; not the strong start I was hoping for. For my first nine months at the company, I didn’t feel like I was fully productive; every change I made was a struggle, with lots of back-and-forth iterations with code reviewers. Several engineers I worked with left me humbled because they were clearly better than I was: They wrote code faster, and it was higher quality, and they could just see farther ahead and anticipate issues better than I could.

While my first year was humbling, I was clearly learning. All of that code review feedback that the better and faster engineers were leaving on my work? It was a very detailed set of instructions for how I too could be a better and faster engineer. It helped, and I improved. My first years at Facebook strongly influenced how I think about code reviews. While some teams emphasize code reviews as a way to prevent bugs, I now believe code reviews do two things that are even more important. First, code reviews are an excellent way for peers to teach each other — this is the value I got as a new Facebook engineer. I also came to rely on code reviews as a great communication tool. Facebook had a “promiscuous” code review culture: On the teams I was on, it was expected to at least “cc” the members of your team on all of your changes. This made reviews a great way to communicate precisely what was changing in the code and to keep team members up-to-date.

Another thing that kept me going: pure ambition. If you’ve never worked at a Big Tech company and wonder what it’s like, I think ambition is the most defining characteristic. A small example: I remember in one of the regular Friday Q&A sessions, Mark Zuckerberg explained to the company how one of the obstacles to Facebook’s continued growth is that a large chunk of the world did not have a reliable, inexpensive connection to the internet. So, Facebook was going to try to fix that. He told us the company was working on a solar powered drone with the wingspan of a 737, weighed a mere 900 pounds, and could stay aloft for months at a time and provide an internet connection to people living below. They had a model of the drone in one of the buildings for a while, a gigantic gray V; it was simultaneously big, imposing, yet delicate looking because it was unnaturally thin. I never worked on the project (called Aquila, Latin for “eagle”), but I recognized and loved the ambition.

Most people working at Facebook in those years did not work on internet-delivery drones. However, I think people at Facebook in 2012-2019, myself included, had similarly outsized ambition for leaving a mark on culture. Working at Facebook gave us front-row seats to a changing world. 2012 was the first year that a majority of Americans owned a smartphone. Now, 92% of us carry a supercomputer in our pockets. Social media was undeniably popular in 2012: Facebook had a billion monthly active users when I joined the company. When I left, a billion and a half people used the service every single day. Everyone at Facebook in that era played a part in the twin trends of the rise of mobile computing and social media. At the time, it felt awesome. Feeling humbled by brilliant coworkers was a small price to pay.

“At the time it felt awesome” — you can see the shift coming in the narrative. Reflecting on my time at Facebook, I now think it’s more fun to be striving for success than to actually be successful. In the “striving” phase you get to keep daydreaming of how awesome it will be when you finally achieve your goals, and you get to wildly celebrate all of the milestones along the way. Once you have achieved success, though, you become a target, and you’re constantly playing defense. For Facebook: the more popular it became, the bigger a target it became for spammers, scammers, liars, and just plain evil people. 2012 Facebook felt like it was in the “striving” phase. The company was popular, but also mocked as being trivial: People posting cat photos and pictures of their lunch. Fun, but unimportant. By 2016 it felt like company was firmly in the “wild success” category. By this point it was clear that Facebook had fended off challengers like Google+ and Twitter, and the company had reached the “1 billion daily active users” milestone. The twin revolutions of mobile phones and social media had changed the entire world, not just rich and developed countries. I remember reading a 2016 article by Craig Mod in The Atlantic that covered how farmers in Myanmar used Facebook. Everyone in the country was getting phones, every phone had Facebook, and Facebook was how everyone found out what was going on in the world. But Facebook’s “wild success” brought tragedy and atrocity in this case. The military in Myanmar promoted hatred against the minority Rohingya on Facebook and used online hatred to fuel their 2017 genocide. In 2018, a United Nations report wrote, “The role of social media is significant. Facebook has been a useful instrument for those seeking to spread hate, in a context where, for most users, Facebook is the Internet.”

Stories like that helped bring my time at Facebook to an end. While I was able to stay absorbed in technical problems during the day, my conscience was uneasy each evening. In 2018, when I found out Duolingo was hiring for their new Seattle office, it was a pretty easy decision to reach out and apply. I still miss 2012-2016 Facebook, though; it was a magical time with magical people and one of the highlights of my career.

  1. Considering that the iPhone SDK was only four years old at that point, I guess nine months of professional iPhone development experience was pretty substantial.
  2. Hypergrowth: There were around 4,600 employees when I started in 2012, and about 44,000 when I left in 2019.
  3. I’ll let you decide how much of that self confidence is earned versus unearned.