14 Years at Facebook Meta
Fourteen years ago, in June of 2012, I left Mozilla and joined Facebook Meta. I never wrote about it at the time, but a big part of that decision was about getting back to working on the web again. Apart from an internship at Yahoo! in 2007 and some freelance work in college, I hadn’t actually been paid to build web sites despite doing nothing but that in my free time.
I joined at an inflection point for the company. The Instagram acquisition had just happened, IPO had been just a few weeks before I joined, and within a couple months we hit the 1 billion monthly active users mark. When I started there were maybe 25 front-end engineers (AKA user interface engineers), and only 2 teams that were hiring for that role. At the end of bootcamp, I went to Newsfeed as we were embarking on a major redesign of Facebook.
I was hooked from the jump. “Move fast and break things” was the culture, but “break things” was never the intent (not in a literal sense). The idea was really to be fearless and be comfortable taking responsibility. This may mean breaking prior assumptions or best practices to explore new ideas, or trying something new that did, in fact, break something. This permission to be brave was refreshing. Shipping website changes to production took, at most, a week from landing (and within a couple years that went to less than a day), which was absolutely breakneck compared to even the newly accelerated Firefox release process.
What really captured me though, and drove me to stay as long as I did, was the investment in internal tooling at every step of the way. It did lead to some Not Invented Here Syndrome, but having home-grown tools that we could hack on ourselves was super powerful. It also helped drive this idea of the company being a place where we shared ownership. I made countless changes to various tools and products because I could and was empowered to.
React
After ~9 months working on Newsfeed, which was a fantastic crash course on building product at Facebook, I got an opportunity to work on this new thing called React. It didn’t take much from Tom to sell me and I joined in early spring of 2013. The API was stabilizing and usage within the company was beginning to grow.
We decided pretty quickly that we wanted to open source this thing. I took the lead on a lot of that, making the website and extracting infrastructure so we could make it work internally and externally without rewriting the code, but so many people were helping to make this happen. While Tom & Jordan were presenting the project at JSConf that year, I was pushing that first code dump and making the project public. For the next 3 years I effectively maintained the open source project - running virtually every release and fixing or triaging issues. I did a bit of the conference circuit, including helping run ReactConf, and gave a few talks of my own around the world. Folks like Sebastian & Jordan & Sophie were the tech leads driving major technical direction; Christopher & Pete, then later Dan & Andrew became the public faces of the project & drove adoption. Again though, so many folks were involved to make it what it became. If you haven’t, watch the documentary from 2023 (which I missed out on being a part of because I’m bad at email and life was hectic).
As the project grew I also worked to get some of the ecosystem projects up and running. I built some shared tooling and helped get Jest, Relay, Draft, & Flow out the door. Helping other projects to their own successes was a gateway drug and led me to my next and ultimately final gig at the company - the Open Source team.
Open Source Tooling
I recognized through my work on React and other projects that I got a lot of satisfaction out of the behind the scenes work and infrastructure that enabled others. This was an opportunity to do that from a central place (think hub & spoke model).
I spent my first ~18 months on the team continuing as an engineer. Just before my son was born I had the opportunity to make the switch to manage the small team and decided that since my life was already about to change dramatically, I might as well do it to my career at the same time.
I spent the next ~8 years as an engineering manager of the team, working through ups and downs as priorities changed and layoffs occurred. I effectively led Meta’s Open Source Program Office (OSPO) for the last few years. The role was super interesting and never fit neatly into typical EM expectations at a big company. While I did do the typical work of supporting a team, I was also negotiating multimillion dollar contracts, writing company policies, working on supply-chain security, consulting with teams around the company on open source strategy, advising lawyers, and still finding time to write some code. I worked on the formation of the PyTorch Foundation and the React Foundation. At different points over these past few years, I got to support multiple other engineering teams alongside Open Source Tooling. In the final incarnation of my role, I also supported several amazing developer advocates.
Getting to spend nearly a decade doing such a wide variety of things and growing while in a space I was passionate about, alongside amazing teammates, was an experience I’m truly thankful for.
Layoffs
I was not surprised to find myself a part of the layoffs earlier this year. It felt different than the previous rounds. My teams’ and my own performance had been solid year over year, but there was a growing push toward flatter orgs and an increased IC:EM ratio. The niche we had carved out didn’t make as much sense and various efforts needed some consolidation. While I was lucky to have been offered the chance to stay on as an IC in the Applied AI org, it wasn’t what I had spent the last 14 years building toward and it was not what I wanted to be doing with my career.
Honestly, the world had also just thrown a lot at me in my personal life, and I was burnt out. Like, super crispy. My wife had been diagnosed with Multiple Sclerosis exactly a year prior. Which, if you don’t know, sucks. We made adjustments but it has been hard on all of us. And even more acutely, just a week before layoffs, we had to put our 14.5 year old dog, Remy, to sleep. She had been a constant in our family, joining us just after my wife & I got married, through the death of our old cat, our move to Seattle, the birth of our son, the pandemic, diagnosis, and more. The reality was that I was grieving and angry and just plain tired.
So, I declined and took the severance package.
That was the end of May and here we are at the end of October. I spent the last 5 months driving my son to and from school and camps. We played soccer in the middle of the day. We traveled, including our first trip out of the country since my wife’s diagnosis. I slept. I spent time learning to play piano (not well, but I have a new creative hobby). I interviewed and lined up a new job. And we got a new puppy, Mabel, at the end of the summer. It hasn’t been leisurely or slow by any measure, but the time away from work has been revitalizing. While it would be great to never have to work, I’m excited again for something new.
Next week, I step back into the working world and I’m going to the only place that feels like a logical progression in my career. I’ve gone from working on individual open source projects to working on a company’s open source program. Next up: I will be building the infrastructure & products that enable so many open source projects at GitHub.