Tech IndustryJul 17, 2023
MetasTbJ38

(Looong post) Years of working in Meta. Giving some advices for the hiring stage.

Hi mates, I had my Nth anniversary as an SWE lately, and it was a good moment to re-assess my current situation. I’m sharing my feedback about working in Meta. It is not about Meta being bad or good as a company, but rather about the rules of the game in the industry in the way I see ones at this particular moment of my life. Also, I hope it helps you to get a better offer during negotiations. Let me explain my observations as I would explain ones to a good friend. You are a soulless resource for the company, not even a human. You are handled by a Human Resource department. Managers will treat you as a resource. There are many internal trainings that will emphasize on this topic, something like ‘please contact the designated responsible people and teams in case of certain problems, do not involve your personality or your own preferences no matter what’. Also, consider yourself being a Joe Shmoe in the eyes of your colleagues. Colleagues have families to take care of, theirs mortgages and bills need to be paid monthly. Meta won’t go bankrupt if you suddenly die because of a stroke. No one will remember you the next day after you get fired or resign. This is just how a large company functions, every employee is replaceable. Of course, any company would be happy to pay less and get more from a resource. Be ready to defend yourself being a person, not a resource. Many people were furious when Mark was talking about ‘I take all the responsibility for firing people’. I know that it means exactly. These are the words for investors and the translation is ‘The management of the Meta is aware, everything goes according to one of the pre-calculated scenarios, each of ones is well analyzed upfront’. The worst thing that may happen with any company is when the management loses the control of the situation, right? It is like being drunk and unable to stand still and walk. And Mark assured that the management has a firm grip of the company, that the ‘nervous system’ of the company looks working as expected and that the human resources are handled correctly in the right quantity. And the decisions are supported by financial models that evaluate the optimal amount of human resources needed, which Mark has also mentioned. Let me explain how to pick a team properly. If 1) you are not working for Meta, 2) you are in the middle of the hiring stage, 3) you are choosing a team, then you WILL want to have an insider before making a choice, I cannot stress this enough. Having said that you’re being treated as a resource, you will be assigned to a particular team to do a particular job. Curiously, an employee may be transferred to a different team during some reorg, but no one will ask an employee’s opinion about the transfer. Before joining a team, all the diffs that were committed by team members need to be investigated using ‘teaminsight’ tool. So, you (or your insider) need to do the following: - Spend a hour and literally go through every diff from the last year or half for literally every member of a team. This reveals your future activity, no matter what a team manager sings. If diffs show nothing but a glue Python code, then you’ll be doing just a glue Python code. - Spend another half an hour and go though all the diffs of a team manager. ‘All’ means literally all diffs, since the time a manager has started working in the company. This reveals the technical expertise level of a manager. Most likely, you’ll find out that a manager is incompetent in the role of an SWE. - Check the age of a team and the time duration a manager has spent in this team. Would you stay in a company that pays generously and the projects are interesting? So, a manager would stay in a team, and change a team it is not ‘profitable’, and the time spent in the team reflects it. This information can be somewhat misleading because of reorgs. - Any team has an internal grade of importance. It is possible that one can never be promoted inside a team if a team does an unimportant activity. The maximum allowed IC level in the team needs to be directly asked about and a manager should know it. You or your insider should double-check a manager’s page and check the open positions and the corresponding levels. - Also, be aware that IC3 and IC4 level has some time constraints. You need to be promoted during certain time period (within 2-3 years?), or you’ll get fired. You need to make sure that a team has projects that allow you to get promoted and the team’s IC levels allocation allows it. Ask a manager about this and double check the response via team diffs, manager’s posts and a list of open positions in a team. Be prepared that a team manager will lie to you in your face during the hiring process. There is a reasoning behind it: a manager needs to find resources for the team, otherwise a manager will be fired or demoted. A manager is responsible for the hiring. The reality is that Meta contains tons of existing code that needs to be maintained, just like in any other large company. For example, Python code may have no annotations. Most likely, the development involves digging through piles of someone’s Python code, and the most of time is spent on the archaeology rather than on writing the code. Contrary to that, every True Programmer dreams about writing a new Linux from the scratch. No one wants to do a boring job, mate. So, it order to lure the workforce a typical manager has no choice, but to lie by emphasizing on certain moments of current projects, promising new projects right next week and avoiding the Gray Boring Reality. For example, a team maintains some Python code by doing patches whenever requested by clients, and the code formally uses a bit of Pytorch. This fact will be presented to you during the hiring stage as an outstanding opportunity to get involved in the most advanced AI/ML technologies. This is true, because Pytorch is used in ML/AL. But in fact the only thing that a team does is just dull Python glue code, 99% of the time following someone else needs, no initiatives are welcomed, ‘we need to support our clients and deliver’. Thus, browsing the code history of the team is CRITICAL. Any team member you talk to during the hiring stage may lie as well, unless it is your old mate. Just because the hiring process implies that a team member tells what is supposed to be told, not what a team member really thinks. More hints: - Someone told me that Meta will not conduct any negotiations about the compensation increases. Also, a manager does not have a budget to reward the best employees. So, DO negotiate during the hiring. - A recruiter will use all the knowledge of the psychology collected over the history of the humanity to pay you as less as possible. - It was a surprise to me that an offer had a 1 year expiration period. Or course, a recruiter did not tell me about that. So, I though it is ‘take it right now or leave it’ situation and did not check for competing offers properly. What does a manager do and why would anyone want to become a manager? - There are official guides, which one may find using something like ‘transitioning to a manager position’ using an internal search portal. To my impression, the duties of a manager are similar to a duties of a babysitter in a kindergarten. Interestingly, this means that a manager is supposed to block you from getting the experience in directing and leadership areas, suiting you to be manageable, otherwise you will be competing with him. This is just the way the organization of a large company functions. SWEs do the job, managers think that they lead and make decisions. So, you DO need to apply counter-measures in order to prevent a manager from stalling your growth of your leadership skill. - Most likely, a person has decided to become a manager, because this person can’t code. A manager can talk, convince, console, persuade, but a manager is unable to create a product rather than just words. A transition from an SWE to a manager mostly happens because of the same reason: a person realizes himself being an uncompetitive SWE. So, another real world duty of a manager is to use words to force SWEs to do boring projects. An interesting project is not needed to be forced, isn’t it? I understand that any SWE gets bored once 80% of an interesting project is done and that finalizing the leftover 20% is tough and takes 80% of the time. And this is when a manager gets involved, but 80% is where an SWE grows and leftover 20% is unrelated to growth. - There are rare cases when a manager is just an SWE that was forced to become a manager because the situation with a project. Such a person will try to transition back to an SWE as soon as possible. - Remember that a manager is a good and friendly person unless his career is threatened. If so, then get ready to be blamed with ‘why did not you tell me?’, ‘why did not you convince me?’, ‘I misinterpreted your words and you did not correct me’, etc., and get horrible a PSC review. In such a case, the only solution to such a conflict is to change a team. Career. - Your career is about defending your impact. Basically, you need to justify that the activity that you do is meaningful. No doubt, you’ll work with partnering teams, each of ones defending the impact as well. And the problem is that each of your partners will present the situation in the way that it is not you who did the job, but it is a partner who guided you, did all the design, etc. For example, your requests to measure your impact (such as compute or power savings) may be sure ignored, because ‘it is complicated’, ‘hard to setup’, etc. If you cannot negotiate on measuring your the impact with your partner, then your partner will be happy to claim all the wins and mention you in his glorifying post with the words like ‘thank you mate, you are the best’. Which is insufficient for getting promotions and good reviews. - If a team has a very successful project, then every team member will present himself as a mate who did the most important job, and this is going to be a problem for a manager to handle PSC reviews. So, be ready to defend your impact inside your team. - Never complain to a manager no matter what, unless you want to be replaced and get no promotions. No manager wants to deal with a whining resource, right? A promotion can be denied because manager’s review may be ‘everything is good, but I just don’t like it’ or ‘you did an excellent job, but you need to do a bit more’ for years. There are 4 areas of evaluation for an SWE in Meta (Impact, Better Engineering, Direction and People), so there are at least 4 possible reasons for a manager to deny your promotion. - ‘Career growth’ that one hears among the words of a manager is not your personal career growth. Basically, a manager expects you to do more for the same compensation within the same time period (dig twice as fast vs the last half, but still with a plain shovel), while you personally typically want to perform as complicated activity as possible (design an excavator). Because the True growth is about doing something that you don’t know how to do yet. - The most important skill that an SWE has is making decisions. And you literally need to prevent anyone from making decisions for you, I stress that. I’d recommend creating some working solution and presenting it, even if it is wrong and ugly, and fixing it later, rather than asking someone on how to do it right from the beginning. Because the first case teaches you on making YOUR OWN decisions, and this is the ONLY way of learning this skill. Managers, team leads and senior SWEs need to be neutralized or ignored, because this kind of self-learning activity a direct competition to their duties. The bad way: suggest a solution for a problem and whine. The good way: create a solution in the form of clean diffs and then sell it. - idk about other companies, but a higher SWE level in Meta is about managing people, not growing a skill, and it seems to look the same for any large company as well. Basically, no one cares if are an expect in hardcore C++ template metaprogramming or Guido van Rossum himself in Python, these expertises are never needed, sadly. By saying ‘managing people’ I mean making other people to do what you need. An example. Imagine some internal Meta framework, written and supported by some team. There is a certain feature needs to be implemented by you for your team clients using this framework. But the implementation cannot be done easily because of some heavy side effects related to the framework. So, being a high level SWE is not about fixing the framework and contributing the code, it is about making the team that handles the framework to help you. It is about 1) blaming them, 2) escalating the issue by involving high level managers and team leads, 3) demonstrating that it is not your fault and you are stalling because of them and that you do did anything you could on your end, 4) making sure that you won’t be called a troublemaker, 5) making sure that your PSC won’t get affected, because your manager will tell that ‘your SWE level requirements clearly state about a capability of communicating with other teams and you, Mike, seem to be unable to communicate’, etc. Curiously, Meta employs really smart mates, so they will AVOID being blamed in smart ways and sure blame you as a counter-attack. Sad but true. Another example. Assume that some mate from some other org is expected to deliver some piece of the code that is critical for the success of your project. But the mate keeps on delivering nothing but promises ‘I will give your the code tomorrow’ for weeks. Same choice: spend days or weeks of your personal time to implement the needed piece of the code on your own (including unit testing, checking side effects and defending that you did everything right, including the design, the impact and ‘why I did not reinvent the wheel’) OR force him to deliver. And just like in the previous case, get ready to be blamed by your manager for being unable to negotiate, especially if the mate is high level SWE. There is one more tricky area, which nevertheless should affect your choice of a team. There is an opinion about the ‘eastern culture’ phenomenon. It seems that the eastern culture is heavily geared towards keeping good relations with teammates and teams and avoiding conflicts at all costs. But getting things done is often impossible without having conflicts and a competition, for example, because of the different priorities and plans, especially between teams, different design decisions. So, having no conflicts often implies things not get done, because projects come and go, but Kevin and Jon stay. And the eastern culture would rather keep Kevin and Jon being friendly rather than getting things done right. A mate that insists on getting things done may easily become known as a troublemaker, and his manager will no doubt receive complaints. It is interesting that people like John Carmack or Jim Keller are known to prefer conflicts but get things done. As a result, the eastern culture implies the following effects: - The IC level means more than a skill. It is never a horizontal structure, it is always about having a strict vertical hierarchy. One’s opinion may be called wrong just because of the IC level. - It is assumed that the more time one has spent in Meta, the more valuable one’s words are for an eastern culture person. I’ve personally heard an argument ‘You are wrong and I am right, because I have spent more time in Meta than you and I know better how things work in this place’. - Your manager won’t help you to get things done. Instead, a manager will emphasize on keeping friends. - The absence of the sense of humour. Maybe, the humour is there, but it is way too different. - And, finally, the sad thing. There are SWEs who work in Meta and do surprisingly uninteresting projects because they need the Green Card badly. Mostly, people from eastern countries. So, they cannot afford to have any winner-takes-it-all way of thinking. No one around talks about it, but everyone understands the situation. - but I would agree that this topic is somewhat subjective and controversial, and it is just a cultural difference. I hope that this info helps someone. Again, these are the observed rules of how any large company works, and this seems to be in agreement to what my friends tell me about other FAANG companies. TC: Meta IC6

Meta tWmz27 Jul 17, 2023

Aurora pipdaddy69 Jul 17, 2023

+1

The Nature’s Bounty 52Mbb Jul 17, 2023

It's actually a pretty good post. I encourage you to read it. Or at least throw it into chatgpt to summarize it

Workday 👹yummy Jul 17, 2023

I approach my job as a weapon/machine of engineering that my manager can unleash on tasks so don’t have any of these problems 🤷‍♂️

New
Jiat48 Jul 17, 2023

Or the IC6 TC, I'm guessing.

ADP iGot5s Jul 17, 2023

Thanks for your insights OP. One of the very few contents I’ve read here on Blind, but certainly one that makes browsing thru the endless shitposts worth for these nuggets

New
15amp Jul 17, 2023

Yeah it's a good post. A lot of common sense but valuable reminders nonetheless. Anybody who's looking around right now should read this. It's a shame it's wasted on the ignorant swine that dominates Blind these days. I'm looking at the shitposts in response to OP and it's like being stuck with a bunch of kids making fart noises in class.

True Fit gptuser Jul 17, 2023

someone please ask chatgpt to put this in a rap

Amazon notjass Jul 17, 2023

Meta, SWEs, it's time to unwind, Here's some truth about the corporate grind, Treated as a resource, not a human soul, Replaceable in an instant, that's the goal. Managers talk responsibility, but it's for show, Controlled scenarios, the management's flow, Picking a team? Get insider insight, Investigate the diffs, see what's in sight. Negotiate your worth, don't settle for less, Recruiters use psychology, put it to the test, Managers may lie, but dig through the code, Don't be fooled by promises on the road. Managers transition, leading without skill, Babysitting teams, they lack the thrill, Defend your impact, make your own decisions, Don't let managers stall your upward ambitions. Remember, large companies have their ways, Culture differences can leave you in a daze, But with knowledge in hand, navigate the scene, Keep your career on track, fulfill your dream. So SWEs, listen up, take this rap to heart, In the industry game, play it smart, Meta or elsewhere, the rules are the same, Navigate with wisdom, find your own fame.

VMware caravagio Jul 17, 2023

Thanks, it was an interesting read! Btw, is there any company on this planet to which employees are not resources?

LinkedIn getGudNoob Jul 17, 2023

This. I’d happily be a “corporate slave” if it means I am making doctor level salary while doing it.

Airbnb buziekw Jul 17, 2023

I've known a few with blood and soul, employees valued and treated like humans.....

Datadog berning Jul 17, 2023

Or, stop living like a sociopathic slave and work at a company that doesn't have so much gamification. Life is too short for this BS.

Google ccTV424 Jul 17, 2023

Preach

Amazon elendegen Jul 17, 2023

I’d imagine pretty much all large companies in lucrative fields that attract the likes of hubristic tech bros get like this to some extent

Twilio dXAV84 Jul 17, 2023

Mate is an anagram of Meta. Hidden in plain sight

Uber dnbdvk Jul 17, 2023

Teamsight bit is very good advice. Diffs speak louder than words. Thanks for the effortpost OP

New
mr.maker Jul 17, 2023

please what are diffs

Nuro zVAp13 Jul 17, 2023

Ok so meta is the same as every other corp? Got it

Macquarie JNSF6 Jul 17, 2023

Surely there's orgs inside the company you can go to to dodge this stupidity? Or is everything outside research one giant pit of snakes and morons.

Meta 871w Jul 17, 2023

Op is spot on, but I think his observations concentrate more in product orgs, which are filled with kids, aka "senior junior SWEs" like 3 YOE E5s and 6 YOE E6s. The more technical the org (read core infra systems) the less gamification you get and the more grownup your peers are. Consumer facing product orgs are the worst, like Instagram, Avatars, FB, etc. Ads too.

Epic Games 3agga3 Jul 22, 2023

yeah, ime PyTorch was a good spot to be at