A Long-overdue Post
I have to say that this post is long overdue. Though I have left Facebook for only a month, a draft of this post had existed for almost 2 years. Over the years, I thought about leaving several times. And whenever I did, I swore to write down every single reason that pushes me away and post it internally before I leave. Ironically, when I actually left, I didn’t leave a word behind. In fact, that’s one big reason that I’m rambling about personal stuff on this technical blog for the first time - I don’t want to waste the draft :-).
Note, I will still use “Facebook” rather than “Meta” because it was used in the draft and I’m too lazy to change it. Also because I don’t like the name change, which is the whole other topic I won’t start.
The Cause is Not the Root Cause
I didn’t made a post like I swore I’d do because what caused me to leave is not why I left. This sounds weird. Let me explain. The direct reason that pushed me to find my next job was the cancellation of my favorite project and the following re-org. But this is not the root cause. Because team switching is simple at Facebook, I could’ve easily found another team. Yet I still chose to leave the company rather than switching teams. The reasons are as follows.
Social Media is Not for Me
In my head, there are two types of social medias - the one where you show off your pretentious life with people you know in real life (e.g. Facebook and Instagram) and the one where you declare a war against strangers because they like pineapples on pizza (e.g. Twitter). When I say “social media” in this post, I mean the former.
I never used Facebook or Instagram. I even registered my Facebook account one day before I started only because the company asked for one. The only social media I’ve ever used is WeChat Moments. And I stopped using it when I realized that I became the worst of myself when I tried to present the best of myself to “friends”. I became obsessed with likes and comments. When I go out, I couldn’t stop thinking about what photos to post to get most likes. I wanted to leave the impression that the de facto once-in-a-blue-moon outing was my daily life.
Therefore, I couldn’t care less about the company’s core products. I focused on technology because itself was cool rather than for the sake of supporting the business. As a result, I didn’t feel proud of my job. To be fair, I was proud of working on a very cool project at one point but it unfortunately got canceled T_T. That was when I decided to work for another company whose product I actually use and care about.
Social Media Culture
Honestly, I doubted about my decision to join Facebook on my first day when I realized that I joined a social media company. This sounds really stupid. Shouldn’t I know that already before I decided to join? Like I said, I didn’t care about the products. However, not until the first day at Facebook did I realized that the company’s product could also affect its culture (or maybe it’s the other way around?). This thought came into my mind when I started feeling that the orientation was like a real-life social media interaction because we were asked to give the thumbs up the entire time. I call this “social media culture”.
I mentioned above that I don’t like social media, mainly because everything is so shiny and beautiful in the social media bubble and the unreal feeling disgusts me. It’s like sweetener – it is surely sweet but tastes fake. That was my feeling in the first couple of months at Facebook. Everyone is nice, but too nice.
For example, I found that people spoke highly of everything and everyone. In Friends, Phoebe once dated this guy called Parker, who was constantly complimenting everything. When Phoebe complained about it, he said, “That’s just because I’m a positive person.” Then Phoebe yelled, “No! I’m a positive person. You’re like Santa Claus, on Prozac! At Disneyland! Getting laid!”
Of course Parker is just a character exaggerated for dramatic effect but I felt like working with Parkers in the first couple of months. For example, when I complained about something or somebody, people would say, “Feedback is a gift. If you don’t like it, you should give the feedback and help them improve.” Well, why can’t we admit that some people are just jerks and won’t change? To be fair, I surely gave feedback and even took a hit by it a few times. An extreme example is, if my feedback to a person is “being sturbon and unwilling to accept feedback”, do you think they will magically accept this feedback among others?
At least I can say that I’m not a saint and I can’t help complaining about things and bitching about jerks. And I even made my first friend at Facebook by doing so. I’m still glad that I started the ranting the other day and they started echoing. At the end we were both like “Oh thank god you’re normal.”
Brilliant … Jerks
When people asked me what I liked about working at Facebook, one thing I always mention is working with brilliant people. I must say that I worked with many of the sharpest people I’ve ever known at Facebook and I really appreciate the opportunity. However, unfortunately, I also met more “briliant jerks” than other places. I guess everyone may have more or less worked with a brilliant jerk so you know what kind of people I’m talking about.
The problem of working with a brilliant jerk is that, in technical discussions, their goal is not to make the right decision by healthy debate and discussion but to outsmart others. As engineers, we should know that most technical problems don’t have a right or wrong answer because it’s all about trade-offs. But apparently, to brilliant jerks, there are always right anwers – their answers.
The toxic behaviors of a brilliant jerk can be very demotivating to other people especially new comers. The first time I ever worked with a brilliant jerk, it triggered imposter syndrome and made me think I was too stupid to work with them. It took me some time to overcome that. Now if I have to work with someone who tries to outsmart me, I only want to say, “If you are really that smart, then why are you stucking in a stupid company that hired stupid me?”
What annoyed me most was not the brilliant jerks themselves (after all, I could bitch about them with friends) but the fact that their behaviors were often overlooked by management. At Facebook, I’ve never seen a brilliant jerk being punished by being a jerk but only seen them being rewarded for being brilliant. They’re often introduced to me as “the best engineer on the team”.
PSC - Pathetic Struggling Cycle
If you have a friend working at Facebook, you must have heard the word PSC. Or even hearing it twice a year. PSC is* the twice-a-year performance review at Facebook. During the PSC season (yes, it is a season that can last 2 months), people write self reviews and peer reviews. At the end of the cycle, you get a rating which ties to your bonus. It is a 7-scale rating ranging from “Doesn’t Meet (expectation)” to “Redefine (expectation)”.
I also suspected that the “social media culture” derived from the “PSC culture”. Maybe because the peer reviews may affect a person’s rating and therefore bonus (money), people try to be extremely nice to each other, hoping others will talk them up in the peer reviews (Note that the peer reviews are also shared with managers). As for some jerks, if you don’t talk them up, they surely will talk you down. Even though there is a section for constructive feedback in the system, in all the peer reviews I ever received, I never got a “real” constructive feedback. They were either heavily sugar-coated or not constructive feedback at all – “Looking forward to working on project X with you next half” – what kind of feedback is this? I did give some constructive feedback to people in my first PSC. But after I received all the good words from others, I felt bad and stopped doing so.
But sugar-coated feedback is not even a problem comparing to the biggest problem it has caused - PSC-oriented engineering. The most important factor in PSC is “impact”. But how do you define “impact”? Nobody knows. Over the years, it has become an unspoken rule that new and shiny projects with high visibility has more “impact” than say, fixing bugs. Besides, I don’t believe people when they say, “During PSC, managers don’t compare you with others. You’re only compared against the expectation.” And I don’t believe a person who fixed 10 bugs in a legacy system would ever receive more credits than a person who launched 1 new service in production, whehter it’s used or not.
As a result, people who want good ratings must find new areas to work on and try to show some results before the next PSC (in at most 6 months). Sometimes, when I saw some crap in the code and asked around why it was designed that way, people could spend one page explaining the “historical reason”. But after I’ve been in the “history” when certain decisions were made a couple of times, I finally realized that the real reason is nothing but to finish this crap before PSC and collect credits. Of course people don’t say it out loud. But how else would you explain all those “short-term” solutions to non-urgent problems lasting for years?
I worked mainly on system and infrastructure side. As we know, many system-level projects could easily be multi-year efforts. To show some results in 6 months, you have no choice but hack the shit up. Why do I need to spend one month on a design document when I can write something that “just works” in 2 weeks, roll it out in production in a day and brag about it in my PSC review in a paragraph? As a result, it’s uncommon to see a badly engineered system running in production for decades. Apparently, it’s not worth fixing them. It’s better to write a new crappy system to replace the old one. Remember? Impact!
I must say I became really tired of arguing about a long-term rather than short-term solution when making technical decisions. It’s really sad to see smart people making stupid decisions because of a silly system. I believe originally the purpose of PSC was to improve people’s performance. But unfortunately the system became the purpose itself.
* It should be “was” because they changed PSC to twice a year starting from 2022. Will that change anything? I don’t know.
UP … or OUT
Similar to the PSC system, the leveling system is another game with well-defined rules that you have to play. The expectation is different for each level and it is documented in a wiki. In short, E3s are expected to work on tasks; E4s are expected to work on features; E5s are expected to own a project; E6s are expected to lead multiple projects; E7s are expected to make cross-org contributions; etc.
Facebook has an “up or out” policy, meaning if you are hired as a junior engineer (E3 or E4), then you have to get promoted to E5 within X (I don’t remember the exact number) months otherwise you’re out. And to make it even more fun, if you are not promoted in Y, where Y < X, months, then you enter a yellow zone. If you are not promoted in Z, where Y < Z < X, months, then you enter a red zone. Once you enter the red zone, you’re evaluated as a E5 even if you’re are a E4. And if you don’t meet the expectation on E5, you’re out.
I was hired as a E4 and couldn’t get to E5 until the end of the yellow zone. For the first 2 years I was at Facebook, the ticking clock made my life so stressful. At one point, I really thought the work I was doing was no different than other E5s but I just couldn’t get promoted. When I asked why, they’d say, “Yes, you’re doing great. But at Facebook we do trailing promotion, meaning you have to demonstrate that you can perform at the next level consistently”. My manager told me that “consistently” means at least 2 halves (1 half = 6 months). In other words, when I’m promoted to E5, I must have already been doing E5 work for at least a year.
This doesn’t sound fair, does it? I was paid as a E4 but had to do E5 work for at least a year only to demonstrate that I could be a E5. I had to work my ass out just to not get kicked out. What a nice way to exploit junior engineers! And if I brought up the money issue, they would say “You’re still young. Don’t focus too much on money. Focus on growth.” My eyes can’t stop rolling whenever I hear such nonsense.
My favorite scene in Stranger Things is when Dustin was trying to trick Erica to perform a task that only she could do, he said “This is for your country. Don’t you love your country?” Erica said, “You can’t spell America without Erica … You know what I love most about this country? Capitalism. Do you know what capitalism is? It means this is a free market system, which means people get paid for their services, depending on how valuable their contributions are.”
Well, I was just trying to play a fair game in this free market and suddenly I became “focus too much on money”. Then it leaves me no choice but finding another place where my contribution is valued more.
For as long as I was at the company, people kept saying that Facebook has a “bottom-up” culture, meaning the projects and decisions are mostly driven by ICs. Until the day my favorite project was cancelled by top-down decisions. Since then, I’ve noticed many top-down decisions made at both organization and company-level despite of overwhelming feedback from ICs against them or even made without IC involvement. What’s more, the leadership seems to be really defensive of the decisions and determined to enforce them.
One extraordinary example is when the company started cutting benefits and pushed back dinner from 6pm to 6:30pm as well as cancelled to-go boxes, CTO of the company defended the decision in a combative tone with many individual employees . I was really surprised when I saw the replies to each angry individual’s comment. I was like “Dude, you’re the CTO of the company. Don’t you have better things to do?”
In fact, what made people angry was not only the top-down decision or that they were not getting dinner but the message sent by the leadership – “Dinner is only for those who work late. If you want to get dinner, then work late.” To be honest, the work-life balance at Facebook was already bad in general comparing to other places, partially because of the PSC culture. For a long time, I had no WLB but only WWWWWWWWWWWWWLB. However, bad WLB is one thing, bad WLB encouraged by leadership is another. The dinner time battle was not the first time that I heard about such message from the leadership. Around the same period, Zuckerberg also made comments which basically meant that 996 is better than 4-day week.
Last Few Words
Though I have left the company, I’m still a bit concerned about its toxic culture because it seems contagious. More than one people I talked to including those in management position really look up to Facebook culture and even try to bring it to their own companies. In my opinion, what made Facebook great (well, in terms of size and money) is not the lame culture but that brilliant people could make real impact regardless of a flawed system. They don’t deserve the way they are treated by the company.