For example I did a stint at a F500 company where 1) a data engineer did not know how to use multiprocessing to parallelize a multi-terabyte S3 upload 2) an internal tool that fired off hundreds of network requests did not use concurrency and hence had 30+ second latency 3) a certain other team was dumping hundreds of terabytes of logs that nobody even knew the schema of into S3 automatically, and none of it was ever touched. Also seen: "data scientists" who did not know Python and executives that spent more time talking about Scrum than any concrete execution.
Take the uploading to s3 point. If you are saturating your network... going multithreaded will do nothing. If you are not, find out why.
The other examples are also lacking a lot of details. 30 seconds of latency can be bad, of course. But so can adding concurrency to a team that doesn't understand it well. (Really, this one sounds like it just needs more context. I'd normally push to remove extra calls moreso than jumping to concurrency. But, each has its place.)
Edit: And the logs... this is just a result of not putting cost as a tracked item for teams. Too many folks fall afoul of a hoarder mentality when it comes to logs.
Similarly, an otherwise great developer can be horrible in a team that doesn't know how to use them.
It might also be that it's not worth spending effort on speeding up some script like this. How often does it run?
Do these 30 seconds matter? Maybe they do now but they didn't in the beginning, but then that's ok, too, and you refactor.
When you get to 500+k you’re either talking about stock appreciation, or people in more of a leadership position/having specific technical expertise.
I’ll add that software is not necessarily a quantity thing. If you want things to have tons of features and have highly parallelizable tasks, it is. But if you want localized technical choices to be high quality you’d rather have one good person than three people who don’t know what they’re doing.
Finance, Management Consulting, Law, Medicine.
Not only are the technical challenges different at large scale, the product and human challenges are different. The 750 principle is basically leading a 500+ engineer org’s technical vision and steering the ship. Not only is it crazy difficult to get 500 people align on a vision, but the mechanics of organizing and leading that large number of people are unique too.
Plus product wise a 750k engineer can save the company multiples of that just by advocating on what not to do, and avoid expensive mistakes.
I’ve learned more in 2 years at big tech than I have in 7 in local companies or smaller startups.
I’d also agree with others that something like a “10x engineer” does exist, it just doesn’t look like the legend might have you believe. They’re not fast typing antisocial weirdos. They just understand the technical and business problems more deeply and have the breadth and depth of knowledge to come up with really good solutions. So in that regard, the value of their output is at least 10x that of their more junior peers.
So not that different from senior management pay grades in other industries.
This code change saves you 400 instances x 24 hrs x 365 x aws cost per hour. And the next year, and the year after that, and maybe the one after that too.
Throwing more metal at the problem is the favored solution when the issue is transient, the company doesn’t scale, or the company is shitty.
there's a lot to dig into in this comment, but I think this is the biggest thing you are missing. the leadership of big tech companies generally does not look at revenue as a fixed-size pie to be divvied up between themselves and their subordinates. instead, they try to grow the pie as fast as possible so they can justify their own salaries and bonuses to the board. if this means paying way over market for labor, so be it. they'll keep doing it as long as they grow revenue by more than they spend on SDE salaries (modulo some organization dysfunction, of course).
the point of the $300k salaries is not to hire engineers that are 3x better; it's to hire armies of engineers very quickly. this is where the absurd algo interviews come in. a large company hiring at this pace does not have the time or the manager incentive alignment to make holistic hiring decisions. some terrible engineers that test well do slip through the cracks, but they can be PIPed out before they cost too much money.
Right. And yet they collude to keep salaries low.
This is why others are running the ship. Your exact example, which you don’t understand, is a perfect example of why you SHOULD give k8s away.
Having engineers that are very good at solving Hard Problems is a major asset. They have the potential to save you countless millions of dollars when Hard Problems occur. They may be doing low-value things part of the time, but if they can deliver on the Hard Problems when they occur then they are worth it.
Generally speaking, $750k class engineers, and I know many, are extremely capable and have skills far beyond the average engineer. That's why they are paid what they are paid. They have achieved a degree of mastery that few engineers achieve.
A huge part of the market is hilarious bad. It's insane. People graduate from school and can barely program, and even after years they don't get a whole lot better.
So yeah, absolutely there are people 7x better.
The absolute dominance of computing has created such a draw that the average is in the gutter. Something as simple as pointers is beyond the skill of untold thousands.
We don’t have the gatekeepers that medicine and law do, so what to do? Pay more, make more interesting work, etc to filter out the cream, or rather, the previously decent.
A Googler is likely best to answer here but my thesis is that since Google is just founded on the PageRank ideas of Larry Page and Sergey Brin, doesn't that already prove the value of highly skilled and highly intelligent people?
One highly intelligent person that can create a breakthrough like PageRank already creates immense value in the world so likely that is the reason that Google are willing to pay such high salaries for the best of the best.
The only engineers who produce value are a small set. Everyone else you try not to have because they’ll slow everyone down.
And, in any case, you’re not going to want it to hold. We all have failing hypotheses. The trick is to have lots of succeeding ones and for the failing ones to fail early.
Whether amazing or not isn’t the deal. The only question is whether it yields more money tomorrow. If it doesn’t, it’s not good.
seems like a very different skill than big tech coders.
even if the impl can be quite involved, it seems rather strange that someone could make money from very simple strategies? seems to contradict common sense.
I worked at a hedge fund that did a bit of HFT. They mostly took pride though in the fact that they made money using intelligence rather than just being really fast.
This results from the underlying factor structure of the industry over the past quarter century. Classically, the factors of production are land, labor, and capital. Capital provides the means of production such as factories, bribed politicians, and lathes; land provides natural resources such as rainfall, sunlight, coal, and zinc ore; and labor applies one to the other to produce something which can be sold for revenue. This revenue is then divided up among the owners of land, labor, and capital.
The division doesn't reflect any kind of moral or objective valuation of the importance of the three factors; rather, it results from market processes in which the owners negotiate with one another.
Power in these negotiations results from owning a scarce resource. We're having this conversation with 100,000 other people on a web site hosted on a single server running on probably 200 watts. So the server costs maybe US$1000, the "land" costs probably US$1000/year, and it required labor that would have cost maybe US$100,000 to get it running in the first place, plus on the order of another US$100,000 a year to pay dang for moderation. The land and capital in this case are pretty fungible, and very little of them is needed. The labor is not.
A rank-and-file steelworker negotiating with the owner of a blast furnace is in a poor negotiating position because there aren't many blast furnaces around, he doesn't have one in his backyard, and there are lots of potential steelworkers with enough impulse control to avoid tripping and falling into the melt. The foreman who knows how to prevent breakouts from damaging the blast furnace and killing his coworkers is scarcer, but he's still probably limited to quitting to work for the other steel mill across town; he can't set up his own steel mill either.
By contrast, all the capital I need for my work is a US$300 laptop and a US$10/month VPS.
So the bizarre algorithm tests are not the cause of these salaries. The underlying factor structure is.
This also explains why hardware engineers are paid so much less than software engineers: an Intel chip designer can't quit and go into competition with Intel, the way the Intel founders and Chuck Peddle did, because even though you can buy foundry services on the open market, Intel's designs are festooned with patent barbed wire, and it commonly takes a million dollars and a year to get an ASIC fabbed, so you need significant startup capital. Modern patents are correctly analyzed as a way to improve the bargaining position of the owners of capital with respect to labor so that the revenues flow to investors instead of employees.
So why is it different in Europe and India? My guess is that you can't run a profitable business there without the right connections (not necessarily outright bribery), so people with the pull have the negotiating power, so they can take home the profits. And Europeans and Indians can't work in the US without visas, which are controlled by (capital-intensive) immigration lawyers and, of course, pull.
How many 750k engineers are actually producing 7x a 100k engineer? I look at companies like Google and aside from the core cash cow (ads) it seems like very little of value is actually happening. They have the cash flow so I guess why not burn it on staff, but e.g. how many 500k or even 250k engineers did Google assign to reinvent messaging for the nth time? How many shitty attempts at a Google watch? How many Meta/Facebook/Instagram clones of some other social network’s feature?
I get that there are occasionally known-by-name engineers who it would make sense to pay for, but I don’t think that constitutes a general “market for SWEs”.
Maybe it is just the market for FAANG SWEs, but they do lots of weird things to constrain their hiring (e.g. only hiring from certain schools or doing bizarre algorithm tests) so really they’re playing themselves at shareholder expense.
Maybe a bigger question is: why are these big companies letting fungible labor take such a big piece of the pie? Facebook likes having the fanciest engineers, but I seriously doubt that they _need_ them.
Anyway, off to the job boards, I guess.