Why big tech companies need so many people
thebuilderjr.substack.com
thebuilderjr.substack.com
Lead the Employee Engagement Organization which is a global team of 130+ googlers who are responsible for driving large-scale impact across Diversity, Equity & Inclusion programs; Employee Relations; and Compliance, Integrity & Governance.
So far more than just specifically diversity all for a company of 200,000+ people.
i.e. 0.065% of the total workforce.
I'd be surprised if this "drop in the bucket" was anything more than a sunk cost
Just imagine something as small as a change in color in a website element - 8% of men and so 4% of the global population are color blind. That's 320 million people potentially affected. A copy text that requires more than 4th grade literacy skills in English to grasp? Like half of Americans, 165 million people, potentially affected. An illustration graphic using cows as an example for whatever? A potential offense to a billion of Hindu Indians.
And the list goes on and on and on. With Google holding ~85% of the global market share in search or 2.5 billion MAUs for Youtube, taking care about diversity is not even close to optional - it's foundational to make sure the company doesn't get into any sort of trouble.
I've worked for a few and there definitely wasn't 1000s of people in the Legal & Compliance departments constantly getting sued and harassing managers and engineers about travel expenses or diversity training.
Instead, it is the exact same problems you see at every large company i.e. excess of middle managers each trying to grow their own fiefdom and duplicating capabilities across the organisation.
Or it's too many poorly conceived and managed product and R&D adventures.
My OH works for a big multinational, has had a variety of roles, at a variety of locations, and despite the fact that she's not in tech you've still managed to summarise pretty much every single conversation I've had with her about her work over the last 20+ years.
Certainly it’s possible to run too many of them, but if you are overindexing on perfect vetting and execution of every idea you might not be running enough.
Everyone’s number one objective in any company is to make their individual life easier. Full stop. The most obvious way to do that, if you have the ability/budget, is to hire people to do your work for you.
Then you can brag about managing higher headcount, you do less work, and you flounder around as a very bad manager with no accountability so long as you keep your workload below the level of your manager (who, remember, hired you just to remove work from their own plate).
Now remember that everyone you hired has the exact same incentive.
It keeps going til the money runs out or until the company buckles under its own organizational complexity.
Most importantly, there are very few managers and business leaders who think "You know what would make my life easier? Having a lot more people to manage!" The usual reason people are hired is because the needs (or anticipated needs, which can often be wildly off as we've seen recently) of the business require it, and without more people there will either be lost business opportunity or risk that existing employees are working at an unsustainable rate.
I'm definitely not saying that businesses can't be inefficient, but when I read your sentence "Everyone’s number one objective in any company is to make their individual life easier" (with a "full stop" no less as if that somehow guarantees its unassailability), I honestly didn't know what you were talking about.
If you're talking about good managers, then yes, having more people creates more work.
The lazy middle managers aren't interested in hands-on middle management, though. They cultivate teams of people who can self-manage or be managed through fear. They take the people who need a lot of attention and they transfer them to other roles. They penalize anyone who asks too many questions or requires too much management input.
These aren't good, hands-on managers. They may be great at talking big in meetings and schmoozing around the office, but they're not putting in the work to be hands-on with their employees.
I agree, which is why people who do know that tend to be extremely hesitant to hire (they’re trying to preserve their own local quality of life). But as the sibling comment says, this realization only occurs to good managers and even then it takes some time.
Sure, but the exceptions do all the hiring!
I think hiring is all about making peoples lives easier (to the extent they’re allowed). However, there’s a cynical way to look at it and there’s a positive way to look at it as well.
We look at people and they generally work 8 hours a day, 5 days a week. Is it going to be surprising we need a whole lot of people running global operations 24/7?
No company can maintain that dynamic at scale, though. As you grow, you accumulate people who are good at presenting an image of doing the good work, but they're actually operating adversarially in a way that collects the most rewards with the least effort.
It's not just managers. A lot of ICs treat the workplace like a min-max game, where they are trying to maximize their compensation and minimize the work they do. Every time I mention this, there are comments about how that's actually a good thing because companies have the same strategy, but the people who do this usually screw their teammates more than the company. Big companies don't suffer if random people are slacking off and refusing to do their work, but their teammates who want to get a promotion or build their skillsets are going to suffer the consequences of deadbeat coworkers.
Small companies aren't immune from these problems, but it's so much easier to identify and remove the dead weight in a small company. When you have 20 people in a company, it's clearly obvious when someone isn't pulling their weight. But when you have 100,000 people in a company, a large number of people are going to find ways to settle into obscure roles where their output is hard to measure and they'll coast as much as they can.
That's less fun than doing the right things, and more work than min/maxing your quality of life
That is one big reason why i stopped caring about the employees taking the clandestine adversarial approach to their relationship with employers. It's one thing to put in low effort at a scrappy startup, but another when the company discourages excellence.
People are supposed to choose their career strategy and on the job behaviour so that their teammates(not friends, teammates) can optimize their own career strategy ?
A similar thing, but with much higher stakes, happens on the front-lines during a war. Confronted with a much superior enemy your individual optimal decision would be to desert, or, at least, to retreat, no matter what the high-command located at the back of the front has to say about it. They're not the ones who are going to die.
But, in doing that, you're weakening the flanks of the other brigades/platoon from your side with which you're sharing the front-line, and in so doing you're drastically decreasing the chances for them to see their kids and their wives back home.
That is why I dislike it when people are working free overtime. They are wage dumping me.
Ya know, they have a word for that...
This is the thing about the HN crowd and the remote only dogma that is constantly thrown around that is perplexing. The HN demo loudly proclaims that the workplace is not the place for you to build friendships and personal relationships and to go do it on your own time.
The natural effect of this is ambitious employees are going to min-max their career trajectory for their benefit and maybe the company's. Why would anyone truly care about faceless Zoom rectangle team members that they're never going to see after x months/years? In this case, they're not fighting a war, so the stakes are drastically low and payoff substantially better. And yet HN looks down on this as bad behavior. This is just the emergent property of the current tech culture that we've established.
Are you actually unironically asking this? If so, we have live in very different social spectrum and there's absolutely nothing I can tell you that will convince you otherwise. You should, however, try interacting with everyone in your life (loved ones, family, friends, etc.) via zoom, since it's all the same anyway. Probably saves a lot on commute and travel expenses!
> Magically they become actual people once you see them with your own eyes, resulting in increased effectiveness and no resentment from wasted time commuting and forced interpersonal relationships with people they find annoying.
Commuting, daycare, housing, etc. are side effects of a larger systemic problem that isn't the scope of what is discussed here.
Calling it a “forced interpersonal relationships with people they find annoying” is such an immature take. This is just literally interacting with people in a society. Most people learn how to deal with others in school. The ones who don’t end up socially clueless and wonder why everyone else keeps getting promoted instead of them, the “10x” engineer who totally isn’t the annoying one.
The issue has nothing to do with seeing people as actual people or not. Without a common ground for camaraderie and fellowship, there’s no need to pretend it exists besides being generally a cordial person. Using the OP’s analogy of War, employees are no longer soldier’s fighting for a cause, just mercenaries making sure they’re getting their dues.
Pournelle's Iron Law of Bureaucracy! The people who game the system eventually move to further enforce the system (for their own benefit), at the expense of the purpose the for which the system was first put in place.
https://en.wikipedia.org/wiki/Jerry_Pournelle#Pournelle's_la...
It seems like this is related to this:
https://en.wikipedia.org/wiki/Goodhart%27s_law
And this:
https://en.wikipedia.org/wiki/Peter_principle
It's almost as if you mix those two things together, you get Pournelle's Iron Law of Bureaucracy.
From my experience whenever this happens the people who get "pushed out of the way" were useless to begin with
Or useless with office politics, and didn’t manage to market themselves well with the new lead. It’s never been clean-cut in my experience.
They screw themselves more than anyone else by spurning opportunities for bettering themselves
??? You've got it exactly reversed. Slacking coworkers are the company's problem, not yours.
I've never seen any company decide not to give a promotion to somebody because their coworker was useless. Hell, sometimes the useless coworker helps because it makes them look better by comparison.
Ah, but have you ever seen a company give raises promotions to the people on projects that were successfully delivered?
> Posting this just never gets old... > > It must have been a couple of months because... > >> I keep this link sitting around and enjoy dusting it off every couple of > >> months or so > >> https://www.ribbonfarm.com/2009/10/07/the-gervais-principle-...
If anything the more we have grown the more over engineering and obnoxious processes we have.
All because late stage people just don’t really get it imo. When you start needing to have meetings so people can “feel like they belong” which translates to weeks of wasted cycles trying to find “what works for us” it’s ludicrous.
You’re hired to do a job, maybe you’re a Java or Go engineer hired to work on services or infra. Or you’re hired to build UIs. You aren’t hired to waste time on setting up slack bots that become annoying af 2 sprints later and removed, or trying experiments instead of shipping.
I can understand having technical processes to make our codebase better, but this side organizational engineering bullshit is just annoying.
Idk it’s just stupid. Imo companies need to be leaner and have less people who actually just do their job. You know, the thing they’re paid 300k plus TC for. I’ve personally been picking up the slack on a bunch of people on my team along with a couple of OGs and new hires who are actually really good. It’s getting annoying now when people just literally are not doing their job and writing 20 page documents on process improvements. did we hire a consulting firm jokers or software engineers?
That is because all the managers who have outsourced all their work to their direct reports now has to still produce evidence that the manager is still needed. So they ask you for reports and data, that they can hand to their managers. And those managers also try to come up with that sort of evidence, so middle managers asks for lots of reports and data from line managers that they can hand directly as is to their superiors etc.
Too much work compiling all those reports etc? Hire a manager to do it for you, then hire more, try to ensure that their tasks produce the artifacts you need to hand to your manager. This isn't efficient for the company, but very efficient for your career. And that is the hardest part about being a manager, that the other managers acts like this and try to push all the real work onto you while taking all the credit.
Should be no surprise that is a stupid idea.
The issue is that once you have layers of middle managers - as in managers managing managers, a snake pit ensues. Nobody gets into middle management and says “ahh at last, I’ve arrived”. The goal is to amass influence and push up as quickly as possible to try and reach the executive level.
From here, it becomes a very political situation, rife with corporate climbers try to push each other down into the mud to reach upward. One way to appear influential is to manage a large team of people. Your main goal is to pull headcount for your org chart, while your peers are also trying to do the same. So you invent ridiculous “strategies” with inflated headcount requirements and promise astronomical results.
It all stems from the personal ambitions of the people in the middle. And of course, they’re usually the most out of touch with the real operations of the company because they’re only peripherally connected to any actual work as a distant connection in the telephone game.
Some of them really do love work and are workaholics… more commonly they’ll always find a reason why they’re “needed”, because there will always be so much more to do. It’s often tough to tell the difference.
However, I rarely see cases where less workload is a motivation for hiring. Often times it’s practically impossible for it to be… and hiring is really the only way they can get work added.
a) being bigger means more technical complexity, more bureaucracy, and more risk, all of which mean each individual employee becomes less productive
b) there's tons of features that their products tend to have that a typical user doesn't know about or care about, which people aren't factoring into their estimate of how many employees the company actually 'needs'
c) there's tons of aspects of a software product that increase in importance the bigger you are that aren't your core thing, but still need to be taken care of: internationalization, security, privacy, accessibility, etc. Of course the typical HN take is probably "psshhhh, that stuff is important no matter how big you are" but realistically, a small startup is gonna spend less time total on those things than a big mature company, most of the time
Point A: Biggest wake up call for me going from a startup to big tech.
Point B: A year into a company, I'd be exaggerating if I said I knew more than 1% of the codebase. So many things the product needs to operate that users don't know exist since no one cares about what's under the hood.
Point C: Yep, imagine having users all around the world who enter and send personal data, and who might use assistive technology. At a startup, it was pretty normal to get the minimal amount done to address some of the needs (if at all) whereas at a bigger company there's way more effort to make sure it's done properly.
Yup, can even break this point down into
a) have more resources available so allocating people to these things is more practical
b) have more users with those needs so spending time on them is more useful in terms of $$$
c) reputational risk of being "that company that doesn't give a shit about disabled people" has increased
Zuck, Pichai, Nadella, etc. all see what the problem is.
Middle managers at FAANG companies see their path to career growth is by increasing the headcount under them.
People hired in roles saw the only way to grow their careers was to become managers.
This led to a completely absurd amount of middle managers, who weren’t really contributing much of anything. Just managing other middle managers.
Zuck made this pretty clear in a previous brief and talked about getting rid of the number of middle managers. Become an IC or leave.
The problem is that the other forms of bloat are largely unavoidable for big companies. They can be mitigated, but you can't just get rid of them.
Near certainly a ymmv situation
What's an IC please ? I didn't find anything relevant online.
Google did an experiment long ago, trying to get rid of managers. It was a total disaster/failure[1]. Seems BigTech wants to re-discover this the hard way themselves.
1: https://www.inc.com/scott-mautz/google-tried-to-prove-manage...
(there are many links describing this experiment, picked a random one)
When your only customer has accessibility needs, it's clear that they're top priority. When you're 98% there, and 1% if your customers have accessibility needs that are all unique, you need a team and more to handle each subset of experiences
Imagine you sell things in 100 countries -- whether it's apps in an app store, or games, or movies, or physical goods. Now you have at least 100 legal and regulatory regimes to deal with around pricing, credit card stuff in general, refunds, age verification for regulated content, advertising restrictions, EULAs, GDPR, etc. In the United States alone there are 50 legal systems to deal with. Plus there are tons of localization and internationalization issues.
An enormous amount of work is needed to get all that stuff right and not be sued or fined out of existence. It's not just work for lawyers, it's work for all the software teams who have to implement the business logic to tailor the user experience for each set of customers and keep everything in legal bounds. Simple mistakes can cause your company to break the law, so everything needs to be reviewed extensively, and approved by a large number of people.
No company with such concerns can maintain per-employee productivity at the level of a startup.
So finance part also gets really complicated.
We spent a lot of time -- like A LOT of time -- on tiny things like how some countries use single or double quotations (e.g. guillemets « », or bottom quotes like „hello"), or how some countries use . and , differently for writing numbers ($1,999.99 vs 1.999,99).
Seems dead-simple, but multiply that out across many different countries, regulations, taxes, and systems and we ended up with a core team of roughly 15 hammering away at this; factor in different stakeholders, managers, contractors, vendors, etc. and maybe 150 people worked to fix these otherwise simplistic issues.
HN has this understandable infatuation with startup mode, but running a truly global product line of anything with a large customer base is simply a lot of work.
Apple can't be run with 5 people, it also cannot be attacked by a 5 people startup. Same for Microsoft, AWS, ... broad massively multi-product companies are very hard to take on if they have their general shit together. Ask Slack how it went against MSFT Teams, a clearly INFERIOR product. Microsoft out-scaled Slack, simple as that.
Sustained innovation of a big company is a formidable moat against disruption. Look at big pharma, these companies have been around for 120+ years! Merck was founded in 1891 (from a root company founded in 1668!) and is still a 50bn revenue behemoth. And yes, modern biopharma is big tech.
To think that Microsoft almost got broken up because of bundling IE with Windows.
If Google Chrome was using 100% internet bandwidth for downloading Google.com, but 60% for downloading Bing.com, would that be just "not making life easier for competitors", or maybe something more?
Apple's behaviors on iOS are this kind of things. Perfect integration with other Apple products via private APIs, basic limited APIs for others
https://www.wsj.com/articles/letter-from-top-apple-supplier-...
What's interesting is that like with most scaling problems, you don't realize that scaling a company actually means scaling people, and that the numbers can actually be very high, until you actually experience it.
In my case, the understanding came quite late, but completely transformed the way I saw my work, my company, and my management. Basically, at some point, you will need a boatload of people - the optimal number and what too many means being another question!
Let's say you are an employee at Apple, and you come up with a very small innovation for the iPhone. Something like making it a bit easier to set a wakeup alarm. Or decreasing the download sizes so that new software updates go 20% faster. And let's say, just for argument, that this small improvement corresponds to 1 penny of value for each user.
Well, there are 1.5e9 iPhone users. So your $1e-2 contribution per user just created 1.5e7 dollars of value - enough to justify your whole TC for years.
I don't think this is accurate. I think the main reason to pay people a lot is just to get talent and stop already existent competitors from getting that talent (which is still 'blocking' in a sense). Stopping people from making possible start-up competitors is, I think, a comparatively minor concern.
You need a large and growing segment of a large and growing market. If you can pull it off with a crew of 50, the better.
Why didn't they release the innovations on chat that openai has come up with?
The question isn't can it be done with a small team, it's "what have you done for me lately?" Yesterday's growth has already been factored into the stock price, what's the thing that will double it next?
Looks like it was a money burning pit before the buyout.
First of all skips the part why non-tech companies need so many people?
There is a number of factors:
* selection bias. We are talking about these companies exactly because they are large. There are companies like WhatsApp was before acquisition that only needed couple dozen people.
* scale inefficiencies. As the company grows there are various forces that make individual contributor less productive. Try to prepare a large party in your kitchen. Want help? If you add another person it will surely get twice as fast? What about 5th person? What about 10th? As you add more people, people will start getting in the way in various ways or will start working on less valuable goals because the most valuable ones are already well covered.
* success breeds problems. While the company is small, cash strapped, it is easy to get everybody focused on a single goal because there is literally nothing else they have cash or people or focus to do. But when the company finally succeeds and they get a lot of cash, there opens a wealth of possibilities but also a perceived necessity to spend that money, invest it in future profits and also to diversify. This causes rapid proliferation of new lines of business and experimentation and each one of those experiments is probably another company. But not as focused because they are not as cash strapped and reliant on efficiency to survive.
* strategic growth. Above all, once the company finds success in one area, the next goal to pursue is to avoid death. If they build one product and stay focused on it there is a good chance they will at some point get subverted or the market will dry out. One way to deal with this is to just start doing a lot of things in the hopes some of them will pan out.
* emergent effects. Large groups of people are showing emergent effects that are very difficult to battle. Every person has their own motivation and their goal is to stay in employ, get raises, get promoted, etc. All these are more important for most people than the actual good of the company and efficiency. These effects cause departments to grow large unnecessarily (because each manager wants to have as high budget and headcount as possible).
But what was its revenue? Was it profitable?
Why do they make a lot of money?
Because big companies are drilled into the woodwork of the governments worldwide, and partners.
How are they drilled into every nook and cranny?
They hired people to lock onto every nook and cranny. Amazon, for example, has effectively grafted itself to the United States government. If you shut down Amazon, you would probably end the government.
That’s on purpose.
These companies are so big because they hire to burrow into every corner and tap into the blood supply so they can never be removed.
Assertion: False
https://tradingeconomics.com/united-states/government-spendi...
The cia and other agencies are deeply tangled with Amazon and Microsoft and Google.
You are unaware we are in capitalism. You have to understand what capitalism Is.
A successful virus in evolution is one that permanently inserts its dna into human dna. So it doesn’t even need to reproduce anymore. That’s why we have so much junk dna.
A successful corporation becomes the government. Microsoft is well past this stage. Microsoft IS the government.
https://en.wikipedia.org/wiki/Public%E2%80%93private_partner...
If a company can 1.5x their profit by doubling their headcount, they would do it even if it seems less efficient because that's what the investors want.
Having more FTE makes your company more trustworthy so in B2B market having more FTEs makes it easier to sign on more customers from F500. If you have 10 employees good luck having F500 company taking you as a serious business.
Having more headcount is also making company more trustworthy for banks to get loans.
So making it easier to get customers and making it easier to get loans for future growth is also coincidentally more worth for investors - but profit per FTE is still important and if you can make loads of money with 10 employees and the same amount of money with 100 - I would invest in the first one.
But on this topic, what are companies supposed to do with lots of money? There's way more downsides to paying somebody too much money. Higher salaries past 200k means that people can retire sooner. Paying somebody 10mn is generational wealth - as in it's more money than someone can spend in their lifetime. They're much less likely to put up with bullshit and take important institutional knowledge with them.
Also at some point it does become neccessary to hire more people. It's not a good idea for the gap between salaries to be that huge.
Paying way above average for labor means a greater chance for a competitor to bridge the gap.
And the previous point is important because past a certain point, people are unlikely to work that much harder. If a company pays in the top 5% instead of top 1%, they'll still get lots of people that are willing to work very hard.
This mean that a team of 4 is the most efficient size. However if you want to scale you must loose efficiency. Because of Price’s law: the square root of number of employees do 50% of the work (that creates value). So 10.000 employees means 100 persons do 50% and 9900 the other 50%.
This mean that a team of 4 is the most efficient size. However if you want to scale you must loose efficiency.
Contributions almost certainly follow some sort of discrete power distribution, but that doesn’t mean you’ll hit a comfortable state at four people where everything has evened out nicely.
(as a side note, I'm starting to see SubStack as the new Medium -- all I see landing here are fluff pieces to give its authors 15ms of fame)
If billions are raining from the sky, you can hire armies of people. Every manager wants to expand their "empire", and there is money to hire people, so in the end a lot of people get hired.
People have lost their sense of duty and responsibility to act civilized. Example: You have a meeting at 11:00. You wake up at 10:59 and don't want to turn your camera on or turn it on while lying on your bed. Don't prepare well for the meeting, didn't check, i.e., the scrum board, don't remember what you did yesterday, etc... I've been hiring developers since 2005. I still work as a developer. I played different roles as CTO, Product Manager, Team manager, etc... It's getting hard to get developers under 30 that can act as an adult. You cannot write everything in the contract, even though responsibility, organization skills, etc., are requirements for every job, and it is, in one way or another, written down in the contract that we all sign when accepting a job.
In a vacuum, a company's profits should only be used by that company to expand / pursue other ventures if that company is uniquely in a position to make the best use of it. Otherwise, shareholders would prefer that dividends be paid out, and the shareholders can choose where to invest it.
But dividends are taxed, and a company utilizing those profits to expand / pursue other ventures is not. Especially in the tech sector, this means you're essentially leaving money on the table by paying dividends. For shareholders to be able to invest better, they'd need to overcome the taxes they'd pay on receiving those dividends as income, which is very difficult.
This allows for a lot of waste in spending that would otherwise not exist. Even if all of those failed ventures and meaningless middle managers reduce the return on that investment by 25% or more, it's still saving money over just paying dividends to shareholders and staying lean.
Uh, this seems like the kind of thing you want to avoid. Long-haul is for connecting data centers, and media should be pushed to the edge with colos?
> If you have billions of users using your product per day, you can split those users into 100 different “universes”. Each of those universes can map to a team of 10-20 people
This seems like some kind of hallucination written by someone who has not ever seen the internal structure of a 1000+ person product team.
Google has issues with having a large amount of content that is watched at all ends of the Earth, so they do need significant global transit to handle the fact that someone in India is possibly watching something from Indiana. Seeding the CDNs creates significant overhead and if the content happens to have a relatively low popularity, transactional overheads mean that the RTT of the requests creates artificial overhead (RTT effectively starts to look like wasted bandwidth).
But when you operate millions of machines it might actually make sense to have a team hacking on a custom jvm or version of llvm or a custom network stack because single digit percentages point perf increases are tens of millions or even hundreds of millions of dollars worth of value
The standard tech company approach to all problems has been to throw capacity at every problem, from AWS to airBnB to Uber
There's also a question on what drives faang valuation. Each person might have to be increasing the average profitability of all the things the company does -- google shuts down profitable stuff because it doesn't move the google sized needle
Here is an example of code complexity: Changing an object from enum to String is trivial to do in a small codebase. Making this small change in a live system like Youtube becomes a 6 month long migration with multiple SWEs working on it, when you have to do it in a codebase with 10s of millions of lines of code.
A lot of complexity comes from code size, multiple teams may end up creating duplicating products/services if there is no standardization etc.
We are powerful, but setting ourselves in motion takes quite a bit of pre-heating !
Customizing huge website X to deal with a specific large market Y in way that actually picks a reasonable amount of extra dollars that are "on the table" in that market. IDK, how Facebook or Twitter deals with auto sales, where at least US auto market is a whole different world. Things specific to each country, etc.
E.g. an early employee gets a lot less stock than an early founder despite everyone at this stage doing a lot of work. There is a sharp boundary that distinguishes between those involved in the "process of creation", an "elder" or parental class, and the followers.
This process happens a few times so there are multiple boundaries where eldership and sense of ownership falls off dramatically.
Individuals that are hired past a certain fall-off point are compensated in ownership units only to be competitive with other companies. E.g. whether it's RSUs or options, the "expected value" of the compensation is around market rate, only the volatility(kurtosis) of the expected outcome differs.
Since there isn't a direct sense of ownership over the revenue stream, individuals are motivated to increase compensation by managing larger teams b/c the market rate for someone who can do that is higher.
There is less return on effort and more risk to do sth like fight through the org structure to gain the necessary political capital to go all-in on an initiative, even with pocket aces.
It's better to work with the org structure and with the ambitions of the individuals you interact w/ daily in the local subtree.
I'm curious how an engineer can save "millions" over the course of a few years by just being at a FANG company?
> They pay their best engineers tens of millions of dollars per year.
This is the first I've ever heard of such a thing in an IC fashion.
Overall the post has a very naive perspective. Why companies need so many people is simple.
Peter Drucker would often say that you must "innovate or die".
Charlie Munger/Warren Buffet have outlived many companies with only a handful that innovated and are still around today.
Clayton Christensen outlines how these companies grow in a sustained or innovative fashion.
To reduce to three bullets is why I'd say it is a naive perspective. There isn't even an example of entering new markets or riding innovative waves.
In spite of being true that hungriness, incentives and other existential features are indeed different, which is also true but comes second to the other point: no startup keeps being a startup after it becomes massive, and many have tried.
I've been on projects where if you cut half the people, and kept the right half, you'd be twice as productive. I know this is easy to say, (e.g., "Why can't Holywood make good movies?") but there's truth to it at times.
This worked well for awhile with Google's revenue outstripping Microsoft and many other competitors by paying top dollar and providing lots of great employee benefits.
With the recent 12k employees they cut moral is down and the list of dead Google projects https://killedbygoogle.com/ will continue to climb. Companies like Open.AI have an opportunity to grab top talent and favorable rounds of investment. Finally we might see some challenge on the monopoly of the big.
There's no upper limit to the amount they can produce, and by producing more they're able to provide more and more tailored solutions for more and more hyper-specific use cases, which is needed to acquire and retain users at the kind of scale they deal with.
Apple is one notable exception to this, because their product philosophy is one of a centrally designed, "artisanal" user experience.
https://www.businessinsider.com/whatsapp-facebooks-22-billio...
The numbers are unimpressive. Revenue was $10.2 million 2013. It had a net loss of $138 million in 2013. The bulk of that loss, or $98.8 million, came from stock based expenses. It burned $9.9 million in cash for operating activities in 2013.
That explains why they very very rarely innovate and often acquihire startups and talent in order to innovate.
Another big factor you are ignoring is the market. Hiring when the market is strong and firing when it's downhill or when cash is too expensive (eg. see interest rates now) will yield returns just in stock appreciation.
It would be a huge risk if, lets say, google core tech would be in hand's of 10 people. Let's assume it is possible. You don't want it, since too much power in few hands.
Today I realize that was partially a failure to recognize the complexity of what was in front of me.
Today I’m thinking about a timeline tool for a game development environment. In isolation it’s not too hard to implement and it’s certainly a solved problem. Flash had it 20 years ago! We should be able to do this in a few sprints, right?
However, it needs to understand the way the game engine works, and it needs to integrate with the engine in a way that’ll let engine development carry on fluidly. This would be possible with loose abstractions most likely, but it becomes very difficult to make these abstractions finely tuned for a simple and well integrated user experience. We don’t want users to need to know anything about the engine. The deeper we go there, the more likely we are to tie ourselves to specific implementation details. Hmmm… So we need this timeline to fit loosely but to also be maximally useful where it counts. There are definitely opportunities to make mistakes here and get bound by tight coupling which we really can’t afford.
There’s also the question of if the engine or any tooling around it needs to know about the timeline. Should we black box it? Our engine team is small, so any major changes there will be very resource intensive… In fact, that decision is crucial because while it could make timeline development easier, it could prevent us from shipping key engine features! Shit, now it’s a very important decision on how we use the team’s time; it’s kind of mission critical.
And that doesn’t begin to touch on how the timeline will fit into the UI, how it’ll integrate with the existing API, and if/what’s missing from the API to make this thing work.
Suddenly this thing I could mock up over a weekend is a massive endeavour that’ll consume a significant portion of the company’s resources. If only we had another dozen people to help us make it happen
Oh, and we’ve got 4 or 5 other super important features to add and they all kind of overlap and interfere with each other.
But we should be able to do this with a couple hackers and a weekend or two, it’ll be easy. Move fast and break it or something.
I’m not saying no company is too large! Some are insanely oversized. Even so, sometimes tech is hard. You don’t want to try having 9 people give birth to a baby in a month or anything silly, but it’s easy to become constrained in this field. Ideas get bigger than your feasible outputs very quickly. Unfortunately, a lot of the ideas are good! You need more people to make it real!
Then of course you’ve got the weird political side of it. But many companies aren’t necessarily up to that game. Sometimes the product you see is only a piece of what’s in the works. Entire teams could be working on stuff that hasn’t materialized yet.
- cost of bureaucracy, organizing large companies takes complexity (arguably too much of it, and often useless) and that transpires in processes that take time during which people dont produce and therefore require more people.
- cost of compliance, big companies are more visible and their footprint being larger means more chances for fuckups. The mechanism by which they compensate is lots of security, privacy, compliance checks that add up to the bureaucracy, and requires more people to achieve anything
- cost of limited options. Big companies usually have less options they can pick for. They have standardized software stacks, access to additional software is either blocked or requires time expensive negotiation.
- cost of hidden incompetence. It's easier for incompetent people to hide, and they have opportunities to move around. Managers don't like to fire, and in larger companies they will have lower accountability (not my money) and higher opportunity (easy to hide) to overlook incompetence and keep the bad people around until they transfer. (that is, of course, unless the company has forcing functions like stack ranking and quotas to fire people - such as Amazon - which is arguably an entire other and worse problem). These people don't produce anything, or are even detrimental, and therefore require more people
IMHO, the cuts so far are pretty modest and careful. I think Elon Musk is showing with Twitter that you can cut much deeper before it really becomes problematic.
Most of these companies are offsetting their lack of efficiency with insanely fat profits. So, they keep on adding people without much consequence. E.g. Google is pretty much printing money to the extent that it almost doesn't matter what they do technically anymore. They actually burn billions on one doomed new initiative after another. Most of these are shut down before any meaningful ROI happens. The money they save with recent layoff rounds is a rounding error compared to their revenue. Their real challenge is finding ways to increase that revenue.
Not that I know everything, but to expand and to keep in mind none of these areas are actually developing or providing the service your business might be known for.
Accounting, large accounting teams are required to manage the various accounting requirements and technicalities required of organisations that are large or have large enough revenue streams that require them to be financially audited by a third party auditor. These teams perform the accounting function of the company but also support the financial audit process required. Of which there is an enormous amount of regulation by governments around the level of internal control of the organisation (see governance, risk and compliance)
Governance, risk and compliance, when you become large enough you need to start managing your risk and defining your appetite for risk as company. This is how your board and audit committees who are charged with governance understand how the organisation is managing its risk. Every company of large enough size has to manage risks relating to cyber security, IT, legal, employee retention, product delivery, sales etc etc. Each of these risks needs to be assessed and various GRC departments jobs are to ensure that the organisation maintains an effectively controlled environment to manage its risk in line with its appetite. Balancing the cost of business and the cost of compliance. Large enough companies are required to maintain three lines of defence, which also means you are subject to various external audits.
Legal departments, are required once you reach a large enough size to combat the various legal threats you may incur when delivering a product or service. Either legal threats introduced by compliance, breaches or brought on by individuals.
Marketing & Communications, you've made a product, you have/want a brand or you're providing a service. This team actively manages this brand, helps build it and markets it to the outside world. They can often also be responsible for clearing, defining and/or managing the internal and external communications that go out on behalf of the organisation. Which is crucial for managing legal risk and maintaining brand.
Human resources, required to manage the people within an organisation of such a large scale. This may include talent acquisition and retention into graduate roles and or senior positions. When there are so many people you can no longer manage yourselves nor be able to identify what people's need are nor begin address them.
Payroll, who pays you?
Internal IT/Cyber, need I say more?
Multiply these areas across multiple geographies or jurisdictions in which you operate. You can start to appreciate why companies have so many people.
I mean, I've never worked in a team that large. A big part of that is because I can't imagine asking someone else's permission to write code. If a company can get so big that they can't trust their developers to release code, maybe that company is just too big?
Companies like Google are a joke. All the Cap'n Crunch you can eat, but do your job and write some code and get it into production? Can't have that!
EDIT: the largest company I ever worked at only had about 300,000 employees.
If I were to be in an environment where there are multiple developers who can understand even the basic mathematics of geometry and linear algebra too do what I do (that's a tall order. It hasn't happened once in 20 years that I've worked in a company that has had even one other developer that knew anything beyond basic algebra), why would they spend their time telling me how to do my job, rather than just doing their job? If I got something wrong in my code, A) how did the process guarantee that it will be caught? B) why wouldn't whoever found the problem just fix it?
It's kind how my children argue over basic things like bedtime. They insist it's only "fair" if one of them turns off the light and the other closes the door. And if the light is already off when they enter the room, then the door closer is going to get pissy and turn the light on to make his brother get up out of bed and turn it off.
It's a meaningless exercise developed to give the illusion of control.
Writing code that other people understand is an independent skill from solving the particular problem at hand. If your colleagues don't understand your code, either you need different colleagues, or you can't write understandable code.
It's also the main skill of a developer. Code is for people.
> It's also the main skill of a developer. Code is for people.
If there are any people reading this starting out in their career, i can't stress how important this is. Being able to write beautiful code and being able to explain it to your peers and see them take off with it and do amazing things is the single most important skill as a software engineer IMO. I would put it above any algorithm riddle, esoteric language feature, tool expertise, or anything else.
Why code reviewer wouldn't fix errors himself? Well, that's an interesting question for sure. One reason, I guess, is that it current way encourages people to avoid doing mistakes over and over again. If code reviewer would have to fix error himself, that would not encourage person writing the code to avoid issues in the future and that would discourage person doing code review to find any issues. But, I guess, in a very trusted environment that definitely could work.
well.. fair point. Code review guarantees nothing, if there is an issue found there's going to be delay to fix it as it rolls back through the process. I hate "process" as much as anyone else but I learned during COVID its importance. I implemented a vaccine system for a state government with a team starting at 3 and growing to over 100 in about 8 weeks. It was the hardest thing i ever did and "process" saved my ass and kept CNN off my front lawn a few times. It also was a real thorn in my side when i needed to get things done. Process vs getting-shit-done is a balance and it's rarely perfect.
Might want to look into Github to see all of the many open source projects that are doing code reviews for every PR.
Edit: oh God, I looked at his linked personal site and this isn't a parody account. I really hope this guy is drinking or something, he claims to have worked in VR/AR. Claiming that none of his coworkers in 20 years have been able to understand linear algebra, while working in that field?
If you're not constantly working with linear algebra, you're going to get rusty fast. Mind you, he seems like he writes a matrix multiplication with goto based loops every time, so he can make sure that he keeps knowing linear algebra, and to prevent the business he's working at from getting anything done because he doesn't like their ethics
Sub par developers parrot industry recommendations such as code reviews or microservices, and Above Average anti-social dude asks why and gets a dumb answer, and out-engineers all the idiots trying to mimic industry best practices.
Now Above Average engineer’s ego expands even more. Not only is he smarter than everyone else, all these best practices are dumb too.
Look at all these people needing code reviews or unit tests, they still can’t ship. Those people doing it at Meta and Amazon must be dumb too.” They think.
The thing is, their arrogance and/or disdain for (whatever) endures they only get hired at companies where this cycle repeats.
It is not a “brag” to say none of the developers you’ve ever worked with don’t understand linear algebra, it means you only work with morons. Being the king of morons isn’t a thing to be proud of…
Oh boy.
Sure, if you're small, working on your own or at an early startup, you can get away with ignoring code quality and just hack away to rapidly do amazing things. As soon as someone else is going to have to change something about that unreadable code, you're going to wish it had been written with a bit more readability.
Moving fast is great for a quick PoC, but if you're going to take that straight into production, you'll see tech debt pile up fast.
Although with large companies, there's also the fact that large companies are just intrinsically slow. I've had plenty of projects where I moved faster than the company could deal with. But also some where some people greatly appreciated the speed at which we could pivot and respond to their needs. But that speed was always built on a basis of readable, maintainable code. And every time we had to deliver something too fast, we followed it up with a period of refactoring to clean up the tech debt, so the next time we needed to, we'd be able to be fast again.