1. Your buddy isn't telling you something. You don't make 1.2MM in a year without having a company be acquired or some other contract deal that he was able to leverage.
This is not exactly true at your FAANG-type companies. The friend is "late 40s", which indicates perhaps 20-25 years of experience. Compensation for Facebook engineers with that much experience is around $475k median per levels.fyi. The ones a bit below this median are at the "E5" level, which is your standard senior engineer: solid individual contributor, does a lot of mentorship and leadership at the level of a small team (5-10 people), will often be consulted about larger-scale architectural decisions but usually won't be calling the shots at a broader scale than their smaller team. E6 is a bit higher level of responsibility, will be one of the lead engineers for a larger (15-30 person) team, will actively shape the strategic direction and design for that team, mentor the senior engineers, and usually will still write some code themselves. That's the ~$500k jobs. This is very attainable for someone with that much experience, though it isn't easy to get there by any means, and we can see plenty who are still at E5 and happy enough with their ~$300k compensation and lower level of responsibility.
Compensation ramps up dramatically from E6: looks like the E7s who reported their compensation recently are right in that $1.2 million ballpark. This will often be someone who is a lead engineer for an even larger team (perhaps up to 100 people). As you can imagine there aren't a ton of those jobs to go around, but they do exist, and you don't need to be an acquired startup bigwig to land one. You just need to establish a proven track record of successfully making these higher-impact engineering decisions and convincing the rest of your team to implement them. These big tech companies have engineering organizations large enough that there's room for hundreds of these folks at each company.
Now, it's important to note that these self-reported compensation numbers are heavily tilted toward RSUs at the higher levels. The base salary increases pretty marginally between levels. Recent movement in the stock market may mean that these folks aren't earning quite as much as they said they were months ago when they reported their data to the site.
Well you cut out the second half of that statement where I said "or by reaching the technical equivalent of the C-suite." No, not anyone can just make that E7 level. There are likely hundreds if not thousands of employees at Google and Meta with 20+ years of experience who will not make that level. I think you're even inflating the number of people who are making E6.
If it's like anywhere else, likely there's a band of promotions that are fairly linear with experience. Probably E3-E5. Once you hit higher levels, the percentage of people in the pool getting promoted shrinks exponentially fast. Everyone wants that jump from 300k to 500k and 500k to 1.2MM. My personal guess is that only 20% of E5's will make it E6, and only 20% of them will ever make it to E7. Meaning that only ~2% of employees (ie, if there are 30k engineers, there will be about 700 E7's. A lot of people making 1MM a year, but the odds of making it are still small because the company is so huge)
A major piece of this is that Google stock did +65% in 2021. Like you said, if 30% of their wage is in RSU's, then a year like 2022 where they are down 20% means that their bonus will be half of what it was last year. And the higher you go the more your income depends on stock price. I'm guessing this guy's salary will be closer to 800-1000k rather than 1.2MM this year.
By all means, everything I have to contribute is anecdotal. But you do yourself a disservice to believe I would have any reason to mislead you, or that I would be unaware of the details. With a particular set of friends, I'm all up in their business, and watching this particular friend maneuver through his industry over the last several years has been fascinating. And his advice and counsel has been invaluable for me in representing myself better in negotiations, which has resulted in a complete overhaul in my mindset and eventual compensation. Of course you know your situation better than I ever could, and I certainly apologize if my story came off as anything other than "while it's certainly possible to have a lackluster job or toil along making decent money, it's also possible to have these crazy careers that are probably not quite as possible in other fields."
So my point was really just to compare tech/programming/coding careers to other technical professions that had been brought up. You may very well be correct that there are thousands of people in these industries stuck below a "political" ceiling (more on that in a bit), but compared to other more classical technical fields, the opportunity to advance to that level is much higher, in my estimation. Within my industry I don't think you get to without leaving the technical space entirely behind and moving in to a role that would be as well served by an entirely different academic background. It's a data point, that is probably irrelevant to alot of folks, especially here, as you may not be planning/expect to work that long.
I was also trying to demonstrate that in tech in particular, folks not being aware of their value is keeping their wage artificially low to an extent I'm not sure has ever been seen before. And to some extent it's a "once you know, you know" sort of thing, but. Damn. Now that I know, it's crazy frustrating not being able to convince people. I was literally on the phone with a prospective hire saying "I'm not supposed to tell you this, as you're technically negotiating with me, but if you ask for more money they'll give you more money, I'm just not authorized to offer it." And then 24 hours he just accepts the original offer. Like, wtf, dude, it's going to take me 3 YEARS to get you up to what you could have STARTED at *flips table*. And among management circles I'm seeing more and more folks bringing this up. We are seeing employees across the board just not ask for any more. We're not sure if it's generational or what, but the "request for additional compensation" are down something like 95%. That is, just, I mean, fuck yo. That number was constant for the entirety of our historical record going back 30 years and then it just tanked. Nobody at the C-suite level is at all interesting in investigating it either. Definitionally a non-problem for them.
I think you've done enough to prove my point though. That social inertia supporting the narrative that "nope, things are shite, but some people are super lucky" is powerful.
On the political thing:
You're representing a general problem with a lot of workplaces as somehow relevant to a comparison between fields. Most of the issues you describe are a problem everywhere.
If you are under any illusions that your attitude and how easy it is to work with/near/around you aren't affecting your compensation and opportunities, you live in a fantasyland. Nobody can be House without a team of writers creating the scenarios and feeding you the lines. Don't Be An Asshole. Tell The Truth. Do Your Best. Stop believing cynics who conflate failure with conspiracy. If it's all good luck and timing then part of that is trying again after bad luck and bad timing. Whether you're a teacher or an engineer or a framing contractor or a long-haul trucker, if a neat opportunity comes up that needs 4 people and you're the 5th asshole, don't be surprised when you don't get picked. And if you don't get picked and there's genuinely no problem with you, and it happens consistently, that's a mismatch between you and that job, and it's time to move on. If you want a career. If all you want is a job, then by all means, soldier on. If no opportunities are coming up for anyone, again, you have a choice.
It's important that this narrative of faultless mediocrity exists. Some people need it as a warm blanket to wrap around themselves and keep out whatever their inconvenient truth is, and I say this with absolutely no judgment, it takes all kinds to have a society. Different people like different things and have different priorities. And I was there myself, I legit thought I would hate managing people, but I've never been better at anything. My failure to embrace some messy non-technical human aspects of the workplace was holding me back, until I decided that it wasn't.
I manage a team that includes some far older folks who, for whatever reason, couldn't pass the test (field requires licensure). I do what I can to make sure they're fulfilled, but that's a hard technical failure that means they can be a crucial part of the team, but probably not meaningfully LEAD the team, even if they are leaders on the team. The most common cynical failure in my industry is among those that cannot pass the test and cannot reconcile their own personal narrative of I AM AWESOME against all these other people who could pass the test but are NOT AWESOME. They develop a narrative that includes the test being representative of flawed knowledge and an indicator of a lack of competency. That's objectively absurd and observably false in the quality of work output, but there it is. Super common, super widespread. Bit tragic, but the Ven-diagram of those folks is a circle located entirely within the "people nobody likes working with" circle. It isn't a coincidence that being so unlikable nobody wants to study with you results in you having a harder time passing a test. It might even be a feature.
Some of the people on the team could pass the test but consistently fail to pay attention to important details (they require additional supervision/support). That inability to trust in the technical capabilities is not a hurdle they can't overcome, but it slows them down powerfully, which is a shame. As a manager I have to carefully not provide the additional supervision/support using folks that are cynical about not passing the test. That situation tends to escalate and rarely ends with either party having a moment of clarity that improves their situation.
Some of the people on the team are ready to advance in spirit, but haven't had the opportunity yet to demonstrate competency in some key area. They are in the queue and my job as a manager is to help them find opportunities, coach them to look for them themselves, and support them in either. And console them as best I can if they have the "grey hair problem" of simply being too young for whatever bullshit corpo logic won't trust young people with management.
Some of the people on my team are technically capable, but sort of assholes, so while I will do my job regardless, I'm going to naturally tend to help others first. And I am honest with them and with others who inquire about them. "Yea Jon is decent enough at his job but nobody really wants to work with him."
There's no room on my team for people just doing a job, so I don't hire those people. I do recommend them to some other managers who have plenty of those types of positions, it's just a quirk of my team that we don't.
And it is every person's job on my team to
fucking leave if I suck at what I'm doing and they aren't content with what they're getting.
None of us does anything related to software development but I'd wager I just described 90% of workplaces with more than 10 people.
That sort of "politics" is how the world works.
In 20 years of working, I can't count the hundreds of coworkers who were stuck or not advancing because of issues with what's outlined above. Maybe 3 or 4 were screwed over by actual negative corruption-based "politics." To the extent that now when I hear "it's all about who you know" I just auto-translate that into "everyone who knows me knows I'm an asshole/incompetent/reachedthelimitsofwhatIcandogivenmypeculiarsocialanxietydisorder." You choose who you know.
And you know it when you see it. High value people will own their decisions. 100% of the time. And it isn't a failure when that happens. You are ready to move on, you make your play for a higher position, you don't get it, you have a choice.
I have the utmost respect for the members of my team that made the choice to stay where they are, and be happy, and do their role. I fire the ones that decide to "fuck you" and retire on the job. I actively coach my best folks to take over for me, as positions like mine do become available and I certainly don't plan to be in my role forever.
One last note on outsourcing concerns:
The company I work at is actively trying to figure out how to perform engineering work overseas, and it is fucking comical the issues we have performing engineering work internationally, nothing at all like what I imagined the problems would be:
1. Americans are lazy-racist. So, we want to eat your food and listen to your music, but if you talk funny we can't be bothered. Be fluent in English or get the fuck off the conference call. Hilarious watching folks who could be in a position to run a team across 3 time zones, representing 24 hours a day of work, set their own schedule, have an excuse to miss or be late to anything, and make 2x or 3x the money, disengage because they have to concentrate a bit to make out what someone is trying to say with their thick-ass accent. Too bad, more for me.
2. Americans are done at the end of the day. Fucking done. I'm out, chair spinning, done. You want to work with me in your 3rd world time zone? Wake up at 2am, work until midnight, we can't be bothered to stay at work just a little later or come in just a little earlier. The US is positioned to be the EASIEST place for everyone else to work with, but my calendar is full of 3am meetings because "MeEtInGs ShouLD be At nIne." Thanks Karen.
3. The US government is great about requiring design work be performed by US citizens/residents. And the US government is such a huge customer, globally, there's very little anyone should worry about your job being outsourced. There will always be a US contingent, and they're so fucking awful for anyone else to work with, they have to be large enough to do the work themselves.
I thought the problem would be finding English-speakers or competent employees. Nope. These folks learned a whole other language, many of them got educated at US universities at horrific expense both in dollars and personally, and they still struggle to pull the work out of the US because the coordinating personnel in the US can't be bothered to show up to the meetings unless they're entirely on US terms, and literally back out or pull the work back to the US at the slightest miscommunication or technical disagreement. "These foreigners just don't get it". It's this glorious American entitlement that serves as a sort of backdoor protectionism. Also the units. The units are a problem also. As long as there are places in the US that require plans be submitted in scales of "fathoms per league" your job is safe...
Really wild to observe.