Why should I have to give up my coworkers, my domain specific knowledge, my job just to get paid what I’m worth?
Why should I have to give up my coworkers, my domain specific knowledge, my job just to get paid what I’m worth?
What I think is a more interesting question is why is there such wide discrepancies between companies regarding a specific employee’s worth?
The reason most companies don't pay FAANG salaries is largely some combination of: 1) they don't have the money; 2) they objectively get less value from those skills; 3) they subjectively don't put as much weight on the skill set (think "sticker shock"); 4) they low-balled their first few engineers and nobody asked for more. I'd bet that last one is more common than you'd expect, especially with junior devs who don't know how much they could be making elsewhere.
I can see how other positions like sales can be more quantitatively measured in terms of contribution but my hunch is that many positions fall into this area of nebulous value estimation.
Or perhaps is more pronounced in software because of the amount of margins these companies work with
There is also the issue that the value of two different knowledge workers, even at the same company, may be wildly different depending on their specific skills and the project they are working on. For instance, someone working on product features at a software company is much more valuable than someone maintaining an internal reporting tool, even at the same company and even if their skills and the type of work are nearly identical.
The point is, there are a ton of variables at play here, most of which can't really be measured, so everyone plays a guessing game to determine what engineers are "worth". The asymmetry of information also doesn't help, because it's hard to know how much you could make if you don't know what anyone else is offering—many people take salaries well below their potential and don't even realize it.