Engineers are overpaid and underpaid
If you’ve been following software engineering salaries in the Bay Area over the last decade (and especially the last five years), you know that things are pretty crazy. Post-COVID world aside, the battle for engineering talent has become incredibly fierce because so many public companies and unicorn startups with deep pockets can afford to throw money at anyone who can code.
Engineers are overpaid relative to other professions in terms of their abilities and investment. There are so many people who aren’t dedicated to the craft and don’t care about the quality of what they’re producing, but they’ll command $200k total compensation without a problem. The fact that being a well-paid software engineer is easy makes the industry rife with these people. I don’t have anything personally against them, and they’re properly taking advantage of what’s in front of them, but I’d rather not work with them if I can help it.
However, we all know that what determines compensation is not how hard the job is, it’s a combination of the value it provides to companies and how scarce the resource is. Engineers are underpaid with respect to this. There’s a reason why big software companies will hire the 10,000th engineer: it has positive (expected) incremental value on their business. Engineering is so efficient for business, and there is so much money in software relative to how many people can code.
The chart above shows the growth of CS degrees in the US vs the revenues of Google, Amazon, and Apple, with revenue growth clearly outstripping number of graduates. Or look at revenue per employee at these companies. The software industry is growing much more rapidly than the supply of engineers, which means that for the foreseeable future this situation will only “worsen.”
So despite feeling like engineers are overpaid relative to their abilities, we are more likely underpaid given the economics, which is why compensation keeps going up so much every year.