Roman's blog


Joining Meta: 8 Months Later

Someone pinged me yesterday, saying they had been reading my posts before joining Meta, and now they’re curious what I would’ve done differently, knowing what I know now. It got me thinking.

No plan of operations extends with any certainty beyond the first
encounter with the main enemy forces.

Helmuth von Moltke

Reflecting back to when I was starting at Meta 8 months ago, I can’t help but think that things didn’t quite turn out the way I expected.

The Plan

To refresh my memory, when I was just ramping up, I made myself a plan of things I needed to learn:

  1. Technical Mastery — Gain a comprehensive understanding of the systems, their architecture, and the underlying technologies critical to my area of work. I should be able to effectively contribute and lead in technical discussions and decisions.
  2. Strategic Influence — Grok the business context and strategic goals tied to my technical work. Dive into the product and regulatory landscape to make sure my technical choices align with Meta’s bigger picture. Sync technical decisions with business objectives and product strategies to make a real impact.
  3. Leadership and Collaboration — Build my internal network, establish thought leadership, and create informal ties within the broader organization and with key partner teams.

This was a good plan, and I still swear by it — but with caveats.

Reality Kicks In

Turns out, Meta moves fast — sometimes too fast. I was reorged one month into my new role. Then three months in, I was reorged again. (Some may argue I was reorged before I even started, since I joined right after a massive org shakeup that threw the whole team into disarray — and the manager who hired me was no longer my manager — but that’s a story for another day.)

In that short time, I onboarded twice: first into the Integrity Experiences team (read: anything related to UX in the Trust & Safety area, mostly focused on bad content enforcement and remediation), then into Integrity Measurement. Finally, 3.5 months after joining, I was reorged once more — this time into the newly formed Compromise Prevention team.

To be perfectly honest, it was somewhat exhausting. But on the flip side, I ended up exactly where I wanted to be, doing exactly what I wanted to do — a weird combination of Security, UX, Machine Learning, and Data Science.

But I digress.

I don’t think I’ll fit everything into one post, but I’ll try to write it up over the next few days (or weeks, at worst) as more things come to mind.

The First Lesson

The first thing that stands out is best summarised in this quote:

If you fail to plan, you plan to fail.

Benjamin Franklin

Having a plan is still a critical part of, well, planning. There’s so much to learn that unless you approach it methodically, you’ll almost certainly miss something. That said, your plan will change.

For me, I initially intended to position myself as a generalist SWE. But it turned out I could produce a lot more value working at the boundary of Security and UX, with a sprinkle of ML and Data Science.

And herein lies the first key learning:

You have about 6 weeks of uninterrupted learning right after joining. Use it to its full potential.

I wish I hadn’t jumped into project work so quickly. I completed the SWE bootcamp (a structured onboarding course with a sequence of trainings and tasks), and only semi-completed the MLE (Machine Learning Engineer) one. I wish I had done both properly — and squeezed in the Data Science track as well. That last one turned out to be one of the most useful for my early wins.

Repeat after me: I will not start project work before I use all of the learning time I’m given. This is a one-off. You’re unlikely to ever get this kind of distraction-free ramp-up time again at Meta. Do yourself a favour and use it wisely.

In the next post, I’ll unpack the assumptions I brought from Google — and why they didn’t all survive Meta’s speed, especially around security and MAU trade-offs.