Note: At Meta, it's traditional to post a photo of your badge and write a post accompanying your thoughts when leaving. Here's a copy of my badge post, slightly redacted for confidential info (unfortunately that meant taking out links to internal writeups/photos).

Badge post

I didn’t think I’d be writing this so soon, but alas, the time has come. My last full workday will be Friday, 8/5. I’ll be around for a bit longer (till 9/21), rounding out my parental leave before officially exiting the company.

It’s been an incredible (almost) 8 years at Facebook, and there are way too many of you to thank for making this an amazing experience. I’ve learnt so much and grown both professionally and personally in my time here. I’m not good at saying goodbyes, so I apologize in advance for this being rambly.

Time for some thanks

Hands down, the people I’ve met, worked with, and learned from are the best part of working here and what kept me here so long. Everyone works so hard and brings their best to improve the lives of the 3 billion+ people that use our products. And these products have had a revolutionary impact on so many lives. When I’d talk to people using our products (especially back home in Pakistan) I’d hear so much about how they use our products to communicate with their family/friends, earn a livelihood, etc. It’s easy to lose sight of this amongst all the negative news and press that flies by.

Beyond the people, the culture (which is set by these very people) has been an exemplary one. There are a lot of things I have come to take for granted: working together as one team, giving respectful feedback, working collaboratively (not competitively), blameless postmortems, listening to everyone’s views, our mentorship culture, giving newbies a chance, I could go on and on. I’ll do my best to take my favorite parts of the culture wherever I go.

All my favorite memories here have been people related - whether it’s celebrating a launch, at an event, working hard towards a shared goal, or so on. I’ll definitely miss you all, and will cheer you folks on from the sidelines!

My time here, by the numbers

  • Number of managers: 5. Two were for only a short period of time (1-2 months) but I’ve been incredibly lucky to have been with the same manager(s) for years at a time.
  • Number of people I supported: 10 FTEs, 4 interns.
  • Largest diff: [redacted] - ~28k lines in total, but this had at least a few thousand non-generated lines. A few weeks of effort!
  • Highest ratio of text to code: [redacted] - >1000 words of text, 5 character code change
  • Most back and forth I’ve had on one of my diffs: [redacted] (>100 comments!). I shouldn't write chef recipes.
  • Total diffs committed: 3282
  • Diffs reviewed: 7682
  • Interviews done: 576
  • Most number of shirts in one week: 5 (one per day!) - photo for my friends
  • Number of games given away: >250 (I may have a problem)

Favorite experiences

  • Working hard as a group and seeing things pay off:
    • Being in a war room to launch our new ads reporting platform
    • Doing some really innovative work to learn privacy policies for Instagram data and then winning the axe (IG wide weekly award) for it
    • Coming together as a team to launch v2.0 of our fuzzing platform.
    • And then launching the scheduler rewrite as part of a small focused team and it launching without a hitch
    • Going heads down on all the SEVs I was able to help with and cause
  • Random fun work moments that come to mind:
    • Presenting CVE-2021-24036 at main SEV review with 0 prep after a scheduling snafu meant the intended presenter wasn’t able to present
    • Having to review a proof of the correctness of a graph algorithm on a whiteboard (and realizing that discrete math class was worth the pain)
    • That “oh shit” moment whenever we found an impactful security bug (like my first big fuzzing find, or one of the first IVD SEVs I was involved with)
    • .. and a lot more that I can’t list here
  • Organizing and participating in external events:
    • Organizing the bay area fuzzing meetup
    • Organizing prodsec week in 2019
    • ... and more generally: all the offsites!
  • The multiple DevC trips to Pakistan where we had a great impact on the ecosystem, and had a great time:
    • Messenger bot workshop in Lahore
    • Open source for emerging markets workshop
    • Launching the innovation lab in 2019, and hearing from young developers who traveled across the country to attend!
    • ... and a few more I can’t easily find links for!
  • Meeting and learning from new people, mentoring, and being a mentee:
    • Being part of the open source mentorship program and getting to mentor young and upcoming engineers from around the globe
    • Meeting folks from across the company and learning about how they approach work
    • Receiving excellent mentoring from some great mentors (you know who you are!)
  • All the (internal and external) talks and presentations I gave on my work, talking about stream processing, fuzzing, invariant detector, etc
  • The fun social activities:
    • All the food! getting fried chicken sandwiches every Wednesday, heading off to the sweet stop as a group after lunch, hunting for biryani whenever it was available (and writing a bot to notify me when it was).
    • Staying back and playing board games with folks until late in the evening
    • Walking to MPK16 for board games one evening, getting stopped outside a conference room with someone asking me “you use a mechanical keyboard right?”, and then being introduced to Loud Clickers@ and getting a t-shirt
    • All those games of fifa (until the console was stolen :( )
  • The internal community and appreciation - too many examples to list here but I’ll mention one that stuck out in particular: getting a message from someone at 2AM (I was on a work trip) that they loved reading my book (Unearthly Whispers) and stayed up late to read it!

I may have some regrets

My time here wasn’t perfect. There are a few things I regret doing, and a few things I regret not doing.

Things I regret doing:

  • Making people feel bad or unwelcome. There are a few times I unintentionally did this and I still periodically wake up and feel bad for what I did. To those of you I’ve done this to, I’m truly sorry.
  • Rushing to offer advice when I should have stayed quiet, listened, and empathized instead.
  • Speaking over people a lot (I’ve been working on this, I promise).

Things I regret not doing:

  • Not spending more time in hackathons/contributing to minor product fixes here and there to directly make people’s lives better.
  • Not opening up about mental health: Meta’s culture has something unique about it which IMO causes a lot of people to burn out and suffer from anxiety and/or depression. I’ve had numerous private talks with people about this and the rate of occurrence is just too high to be a coincidence. I’ve held off on saying this in the past, but I’ve suffered from it too: I’ve fought impostor syndrome during my time here and suffered from anxiety and depression, partly due to work. I regret not speaking up about it more openly, as it would have been worth it if it helped even a single person.
  • Not writing more - I have given people advice here and there in 1:1s and have been asked a lot about it. I wish I’d written up and shared that more broadly so it could have helped more people.
  • ... I could go on for quite a while, but I want to keep this post short.

So why leave now?

To be honest, it was hard to make this decision. There are so many things I love about working here. But, after one major life event this year (welcoming the cutest baby into the world) I took some time to think over my priorities and goals again and now felt like the right time for a change. There’s a lot to learn and do out there as I begin a new chapter in my life - and there’s never a perfect time to make a change.

There’s no single factor I can point to which solidified my choice to leave. There were a lot, but these three stood out:

  • Opportunities for growth: While I’ve learned a lot in my time here and there’s a lot more to still learn, I feel I’ve gotten into my comfort zone. There’s a lot to learn out there and I’m excited to stretch myself in a new environment.
  • The Meta of today is not the Meta of yesteryear: I really value the culture at Meta. Over the last few years, as the company has grown, the culture has necessarily changed. It’s not necessarily worse, but it is different. And I constantly find myself wishing for the olden times.
  • Burnout: To be honest, I’ve been suffering from a little burnout over the last year or so and haven’t been bringing my best self to work. I miss the times when I’d pour my heart and soul into my work and be damn proud of what I achieved. Burnout takes the happy edge off of that and I’m looking forward to fixing it and getting back to thriving at work.

If it was any single factor, I’d probably be staying here as it could be tackled in isolation. But the combination of everything forced me to take a step back and think (especially since these all feed off of each other) - and starting afresh seemed to be the right decision.

So what's next?

In the short term — I have nothing planned, I’m going to be spending some quality time being a dad as my wife returns to work and until the baby can go to daycare (this time never comes back) and then taking a break to recharge my batteries. When the time is right, I’ll get back to writing some code.

I’d love to stay in touch. You can find me on Facebook, Twitter or LinkedIn. Apologies in advance for all the link spam you will see if you friend me on FB (a copy is shared here).

Til we meet again, folks!