I Shipped a Facebook Feature So Fast Sheryl Sandberg Called an Emergency Meeting

gpi1 pts0 comments

I Shipped a Facebook Feature So Fast Sheryl Sandberg Called an Emergency Meeting to Stop Me

Michael Novati - Personal Essays

SubscribeSign in

I Shipped a Facebook Feature So Fast Sheryl Sandberg Called an Emergency Meeting to Stop Me<br>One weekend. 8,000 lines of code. One emergency Sheryl Sandberg meeting. Here's the story Facebook Groups got file uploads and still has them to this day.

Michael Novati<br>Jun 19, 2026

11

Share

I’ve been trying to avoid writing random stories just for the sake of it. I want these pieces to have a real point, but the posts I’ve been sharing about my time at Facebook have been getting a lot of attention, so I’m going to tell a classic one. This is the story of how I forced the CEO, the CTO, and the COO of Facebook into a meeting with me within forty-eight hours of writing a line of code. Yes, that means Mark Zuckerberg, Mike Schroepfer, and Sheryl Sandberg in one room, reacting to a single engineer who refused to take no for an answer.<br>At the time, I was working on Facebook Groups. The team was tiny—only about three engineers, and I don’t even think we had a product manager yet. It was one of those rare products that somehow had hundreds of millions of monthly active users but still lived slightly under the corporate radar. There was infinite room to try weird things, and because the team was so small, your personal leverage was massive.<br>We were in a feature meeting with Schroep (Mike Schroepfer, our CTO) and maybe our manager, talking about what to build next. Mark Zuckerberg was highly involved with our team, and I’m pretty sure it was him who floated the idea of letting people upload regular files into Groups. Up to that point, Facebook only knew how to handle text, photos, and videos. There was no way to upload a generic binary. We started talking about use cases: maybe a closed family group wants to share a PDF of a travel itinerary, or a dad needs to upload a PDF of a receipt. Things you’d only ever want to show people inside a locked room.<br>The room immediately treated this like a massive, months-long corporate initiative. It would need scoping, staffing, cross-team reviews, and a long timeline.<br>I sat there and said: “Today is Friday and I’m gonna build this by Monday.”<br>Schroep literally laughed out loud—like hysterically. It wasn’t a polite chuckle. It was the look you give a kid who says they’re going to build a rocket ship in their backyard before dinner.<br>As soon as the meeting ended, I walked back to my desk, opened up internal chat, and wrote a direct message to Mark Zuckerberg. I told him: “Look, I’m going to build this by Monday.” I think Mark actually believed me—or at least, he’d seen me ship fast enough to know it was possible—but he was still skeptical.<br>But here’s the thing: when you have two people of great influence and power at the company, who think you’re joking, that is the most motivation I could get to prove them all wrong.<br>I didn’t start from scratch over the weekend, but I didn’t have a clean, ready-to-use pipeline either. I had to glue together systems that were never really meant to talk to each other.<br>Before Groups, I had worked on the internal tools team. In internal tools, we had to upload files all the time—tasks, support tickets, marketing assets, ads. We had a basic internal file storage abstraction that saved files into a simple internal bucket. I knew this code inside and out because I’d built on it, but that bucket was built to handle traffic for a few thousand employees, not hundreds of millions of users. It would have crumpled in seconds.<br>For production scale, we had “Haystack.” Haystack was our magic, custom-built cloud storage system—Facebook’s equivalent of Amazon S3 or Dropbox—built specifically to distribute billions of photo files instantly across the globe. It was highly optimized, but it was designed for image files, not arbitrary binaries.<br>So I basically said: what if we allocate one of these Haystack magic buckets to just be a generic file store? I went to the infrastructure team to get a quick, informal sign-off. I wasn’t going to deploy new servers myself, but I asked them to bless the idea.<br>With that bucket secured, I wrote a new generic file upload abstraction. Rather than have every different corner of Facebook write its own proprietary API to store a pointer to a file, I built a generic “file object.” This file object didn’t just hold the file itself; it held the generic handle, the metadata, and most importantly, its own permission checks.<br>It was beautifully abstracted. The file object knew how to determine its own visibility based on where it was plugged in. If a file was connected to a Group, it would check the visibility settings of that specific Group. If it was attached to a user profile, it would check that profile. If it was linked to an individual post, it would check the privacy settings of that post.<br>The last missing piece—and I won’t go into all the technical details—was that we needed a way to sign our...

facebook file meeting team sheryl sandberg

Related Articles