This post seems kind of naive? A big part of why big tech companies need so many people is because any big company, especially one sitting on piles of money, becomes a target for all sorts of predators and has to defend itself. So it has to have armies of SOX compliance officers (because it's still cheaper than getting sued by the SEC), travel expense auditors (because it's still cheaper than shareholder suits after a VP whoops it up in Vegas and sends the bill to the company), mandatory diversity training educators (because it's still cheaper than getting sued by various minorities), patent litigation departments (because it's still cheaper than losing to patent trolls) etc etc, all of which feel like "bullshit jobs" to the average 3-man startup because the average 3-man startup doesn't face any of these problems.
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.
Every company I've worked for has had some core group of people who cared about doing good work and doing the right thing.
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.
> Every company I've worked for has had some core group of people who cared about doing good work and doing the right thing... but they're actually operating adversarially in a way that collects the most rewards with the least effort.
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.
Doing the right things tends to also not align with promotions either. The thing that helps your team mates us ignoring the business needs and min/maxing the promotion game.
That's less fun than doing the right things, and more work than min/maxing your quality of life
That also means being willing to take risks for the sake of innovation, and bigger companies are less tolerant or accepting of their employees failing at an effort intended to benefit the business.
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.
Let’s talk about teams with where you have one person doing everything. They are creating deadbeats. Does it never cross anyone’s mind that the way to fix this is to move that person off of the team? Often they are sucking the oxygen out of the room with a strong personality or dogmatism for some personal ideal of quality. The manager lets them run with it because the work is getting done but that manager is bad because his team is languishing. I’ve seen this so many times where engineers get pushed out of the way by a new lead engineer and their workloads drop significantly. These leads who want to run everything don’t have the energy to convince people well, instead they just write so much complicated code as fast as possible to beat anyone else to the space. It’s not just ego it’s a matter of avoiding a hostile work environment being hostage to this one persons gatekeeping. They dedicate their lives to work and spend insane hours so that no one else has the fitness to compete with them. They see that their team is getting left behind and continue full steam ahead. It’s sad for everyone involved.
Looks like we found the guy that pushes everyone away. Who else would excuse this behavior from a “lead” developer? A lead developer should be working (or at least trying) with their team to empower the team as a whole, not blazing ahead on point leaving the squad in the dark, no matter how “brilliant” they are.
I had a guy like that did something like this. He jumped on any new project and did all the interesting pieces as quickly as possible. He also built it with very non-idiomatic code. Despised working with his stuff, even though if he was the only person on the project it was fine, he was very productive.
>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.
??? 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.
If one rushes through, decisions and implementation that are most likely to become a debt on the company don’t become apparent until later. Their endevour immediately renders everybody else as slackers too but most likely than not they’re no longer there when the debt comes to roost.
Did it occur to you that they're getting paid and possibly "bettering themselves" and enjoying family/friends in ways that have nothing to do with the company?
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 ?
It's complicated, because by slacking off you're indirectly pulling your teammates down (as explained by the OP), which means less work-related opportunities for them, which can mean lots of not ok things: less money to send their kids to college, less money for retirement, less money for lots of other things.
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.
I agree, ideally the entire workforce should "advance" under an united front (for lack of a better metaphor). I guess that's why lots of former military people get lucrative jobs in corporate consulting after they get out of the Armed Forces.
Not even close to what’s being talked about here. Unions allow for collective bargaining they don’t ensure all people are working as one giant team towards the companies goals.
I totally understand the point you're making about team cohesion.
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.
So replacing “Zoom rectangle team members” with retinal image team members makes that much of a difference? 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.
> So replacing “Zoom rectangle team members” with retinal image team members makes that much of a difference?
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.
It is unkind to slack off if it means your teammate has to swoop in and do more work. Whether or not you care about being kind to your teammates is a personal decision, I suppose, but it is something I would always encourage people do, even if it doesn't make you more money.
> 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?
> If anything the more we have grown the more over engineering and obnoxious processes we have.
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.
Maybe instead of hiring a manager to compile reports we could take an LLM and a bunch of specially trained AI and hook them up big brother style, monitoring every possible source of data that the business produces (including server access logs and financials!) and it could tell us the metrics of who is doing their job or not.
Until people figure out the metrics and start gaming them and produce crap to satisfy the metrics. I’ve seen that movie twice already, though LLMs weren’t the savior tool du jour yet.
i've seen this before, people get obsessed with process. Then designing the process to do the job starts to become the job for them. You have to snap them out of it. It's not easy and sometimes they have to be shown the door.
Every single thing in your comment rings false to me, as someone who has been both an IC and manager at startups and large corporations.
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.
> 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!"
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.
Heh a lot of people in this thread also seem to miss that as a company grows you have an accruing amount of vacation time on your team and need enough people to ensure the operation always runs. The operation also needs to be bus proof, over the last 2 years the branch we are in has had 3 people killed in car accidents around the world. And then we also have people leaving and new people being on boarded which means they won't be really useful for a month or more.
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?
What you’re saying is that some people have realized that hiring more people doesn’t in fact make their life easier. It often makes their lives harder.
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.
I agree and disagree. Even competent managers and high performing teams hire people when the amount of work stress exceeds a limit and it’s mentally cheaper to onboard someone into the team.
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.
It is simpler, but not for the reasons you describe.
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.
Equity is supposed to be the counterbalance to this. That is, if you have a very significant stake in a company and every person you hire you need to also give a significant stake, and every person they hire, on and so forth, you would think twice about just trying to throw more people at the problem of creating value. Of course, in reality the early folks just try to get fools to become bagholders of illiquid options that probably don't have a chance of being worth much once you factor in the liquidation preferences of VCs and that they are priced at absurd valuations once the VCs have gotten involved.
I’ve seen lots of cases where this isn’t true. People are promoted to management because of their hard work and continue to work absurd hours.
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.
I feel like you tried to describe it as a negative but that is called delegation and the trait of a good manager. Of course it's a spectrum and there are negatives and positives but the concept itself is not bad.
This comment is like a Fox News parody of what tech companies are like.
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.
The thing about being a large company in an innovative industry is that the optimal number of “poorly conceived and managed product and R&D adventures” you need to run is not zero.
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.
> excess of middle managers [and/or] 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.
What percentage of a big company do you think falls into these categories? The idea that "mandatory diversity training educators" or "travel expenses audiotrs" are anything but a drop in the bucket is laughable. Also, often roles like these are farmed out to vendors and aren't actually staffed by company employees at all.
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.
There is no way that many or even most of them are getting anywhere near $250k per annum. Even living in the bay area -- which many of them might not be. GOOG has offices in Austin, Calgary, and Nashville, for example.
But that's not what this thread is about, it's about why the companies have so many employees. These 130 jobs that so many people want to complain about don't even begin to have relevance to why there are 190,000 people at Google.
And at the scale of what Google is doing and just how much impact even seemingly trivial changes can have on millions if not billions of people, taking care of diversity is actually important.
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.
The diversity training and other efforts like that are definitely a thing. my referral bonus for getting a POC hired to a peer position is 5 figures ( and it doesn't start with a '1'). It's taken pretty seriously at big companies.
Both are equally true: big tech companies have big tech problems and big company problems, both of which tend to require big expenditures to deal with. And let’s not forget all the folks you need for sales, marketing, finance/accounting/treasury, legal and audit, logistics, manufacturing, trust and safety, customer service, civic affairs, shareholder relations … the list goes on and on. Companies are vast empires, and even from 10,000 feet up it’s hard to track everything being done.
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.
> Zuck made this pretty clear in a previous brief and talked about getting rid of the number of middle managers.
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.
Agree with all these points. The 80/20 rule is alive and well at big companies. In aggregate, customers want all 100% so you need to do the 20% work that takes 80% of the time whereas startups likely write it off as out of scope.
There is also a ton of legal and compliance complexity.
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.
Not only legal: 100 countries makes close to 100 different ways of taxing stuff, e.g. different VAT rules. Different rules for what must be specified on an invoice and how often you must invoice customers.
I was on a 1.5 year project related to SAP / ERP systems, entirely related to automated invoicing to LATAM and Eastern Europe countries.
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.
For c, there's both a larger surface area to look for, and less ability to escalate every issue found.
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
And I think B is especially key for large global products. Most users of common apps like Facebook don't see the advertiser side, for instance, or don't know that some features are built for specific countries due to regulatory or compliance reasons.
One reason I’m not seeing here is that big companies have such high communication overhead. It’s incredibly hard to get large groups of people working efficiently toward common objectives. You can choose between heavy bottlenecks or wasteful duplication of effort, and there is constant churn trying to balance the two. Just knowing what is going on and who to talk to becomes important, hard work. Informing other people what you are doing, why, and how it’s going starts to take significant time. On a small team you’ll never even see how much of a challenge this is.
Because bigger teams can accomplish bigger things.
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.
Many of Apple's products could be attacked by smaller companies, if it weren't for their anti-competitive practices. For example, AirPods get exclusive and superior APIs on iPhones - it doesn't matter if you make a better or cheaper AirPod competitor because you are stuck with clunky Bluetooth pairing. No non-Safari web renderers. Can't backup or transfer files to your iPhone without another Apple product. iMessage, the Music app. 30% fees and no sideloading. The list goes on and on.
To think that Microsoft almost got broken up because of bundling IE with Windows.
I'm not sure you really understand the technical complexity that goes into Apple's most basic products. The top to bottom in-house software stack is one thing, but that's the tip of the iceberg. Their manufacturing is best-in-class. They can make better products than you can, at price points that you can only dream of. You could pour tens of billions into a competitor and not even come close. They are so politically powerful that Tim Cook telling Terry Gou that they're moving their latest production out of China pushed the country out of zero covid overnight.
You are literally re-describing what I posted. Apple, MSFT, etc. out-scale you an all fronts - legal, go-to-market, marketing, bundling, pricing,... Their scale is their moat. More lawyers than you have coders, and that's that.
Anti-competitive practices is when the government prevents other companies to join the market. That is not the case here. Do you really expect Apple to make life easier for their competitors? You're free to use Samsung, Galaxy Buds, Whatsapp and Spotify if you don't like Apple's products.
> Do you really expect Apple to make life easier for their competitors?
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
Start-ups routinely massively underestimate the number of people needed for tasks though. I saw a start-up that thought they could build a Siri competitor with five FTEs. That is just so far off from any reality.
Hence Apples large number of lawyers and legal analysts ensuring they can hold their phone/store monopoly thereby bloating the number of staff they have.
I very much agree with this, being quite familiar with large companies.
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!
This misses two big aspects of software engineering as a whole; the more code you already have the, the longer it takes to add new features, and the more people working on a code base, the long it takes to coordinate. These two aspects mean you need more and more people to move things along. You multiply this with that doing a service in multiple countries is more complex than one.
There are a lot of cynical comments in this thread about large headcounts being a result of mismanagement, complexity, and bloat. But there's another, more virtuous and reasonable, answer to this 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.
Sorry, what is the explanation for large headcounts in your comment? Are you saying hire more people because more people results in more innovation? I’m not following.
> This alternate reality could have saved Yahoo. Indeed this is the exact “blocker” strategy is what many of today’s companies like Google/FB/etc are employing.
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.
At the same time, it's definitely the case that SV was built on Shockley's "traitorous eight" and its generational successors. Big waves of change erupt in the wake of past layoffs and signs point to the same occurring this time. I think it can be the case both that the big firms don't take startups seriously but also soak up talent that would otherwise form those startups, simply because other competitive dynamics motivate doing so, and the talent in question ends up with a paycheck that diminishes personal motivation.
Indeed. If former employee startups were the major concern, they wouldn't pay so much. It's financial independence from working at faang that enables lots of devs to leave to start or join startups.
I think another big component is you can't sell a growth story to Wall St. with a skeleton crew keeping the lights on. You have to have plenty of engineers working on the next big thing.
What has the what's app team made other than the what's app app?
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?
no reasonable fear doesn't mean they are not abusing their labor market position, also doesn't mean legal is not zealous about this (which is okay at that scale)
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).
Don't forget government taxbreak to jobs programs. It may be a small factor in the tech world, but cities love giving X% tax breaks as long as the company brings in Y jobs.
I don't think companies hire more people due to those jobs programs. I think what typically happens is they use those programs to hire people they would hire anyway AND get a bonus. Or maybe just shift where they hire people.
Why are they big? Because they make a lot of money.
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.
I was wondering about how Amazon has grafted itself to the U.S. government so looked it up and found that government agencies rely on AWS. Is that what your referring to?
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.
Another reason is that companies try to maximize profit, not profit per employee.
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.
No, one of the core company metric for investors is profit per FTE so that is not true that investors want more headcount.
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.
Disliked the article because of it's lack of substance.
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.
Because of Price’s law: the square root of number of employees do about 50% of the work (that creates value). So 10.000 emmployees 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. 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.
Price’s law is widely quoted in management training and consulting, but it wasn’t a great fit for the data he was originally publishing, and it’s an empirical observation rather than hard and fast fundamental fact.
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.
But it still works as a rule of thumb: if your department has 100 people and you want to double its productivity, hiring 100 more people won't help. You have to hire around 300 more people if you don't change the way the department works.
I don't think this article has enough substance (or industry awareness) to be on the home page. It is not based on any actual experience on the part of the author, and is just a naive set of opinions.
(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.
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.
"Quiet quitting", as you so aptly did not wish to call it, does not exist in a vacuum; it is a response to unheard, unaddressed critiques from the people who actually do the work, and likely the only avenue those workers have left to 'voice' those critiques. I think anyone who has worked in a large org, especially hot on the heels of laying off so-called 'high performing' employees, should be able to empathize with the message.
You don't get it. You are entitled to nothing more than it says in the contract. There are ways to get more performance out of people but you have to decide if you need it and have to chose to do it. We can struggle and share the victory over a deadline or you can have those dumb shits put in some overtime and hope you will make it. You get to be whoever you want to be.
> You don't get it. You are entitled to nothing more than it says in the contract.
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.
> Better infrastructure means you have undersea cables that enable lower latency video streaming such that users prefer your app over the up and coming app.
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.
Correct, although if the content origin is on one continent and the consumers on the other continent, then you do need to shift at least a replica of that content across the ocean (then use a local CDN for national/regional delivery).
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).
This post is dead on. I didn’t understand it fully until I went to large companies. Google has reinvented every part of the stack for better or worse. Certainly I think git would be fine but it didn’t exist in its current capacity when they built their own source control.
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
An alternative is that they're lumbering under the weight of all their tech debt, and rather than fix the tech debt, tech companies throw more capacity at it
The standard tech company approach to all problems has been to throw capacity at every problem, from AWS to airBnB to Uber
As an MBA actually running a medium size business, this article makes my head hurt. I think all these layoffs will be a healthy purge for the better allocation of resources, aka the economy.
For any company it makes sense to hire someone as long as they bring more revenue than cost. FAANG have millions of things they could improve to drive more customers.
I don't think it does? Theres questions on what else the business could have done with that money, like collect interest.
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
In order for someone to be willing to pay you interest they have to have some kind of direction in mind that they expect will return more money than the cost of the interest. If they have a solid plan that is worth investing in, why not pursue it yourself and reap all of the rewards? Management of that might be unrealistic at individual scale, but when you're the size of Google you can go off in all kinds of different directions without much impact.
I don’t think anyone is arguing you shouldn’t pay top people top salaries, but he doesn’t even address what he mentions in the opening paragraph: the legions of lazy people doing nothing
Was reading already a decade ago stories on how keeping disposable headcounts can be done purposefully, so that when the wind blows the opposite way, droppings dead weights has little to zero impact on business continuity.
Reminds me of that famous Oscar Wilde quote they had Leonard Nemoy whisper you in Civ:
“The bureaucracy is expanding to meet the needs of the expanding bureaucracy.”
Other comments give lots of examples of organizational complexity.
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.
Telco man here... Lengthening the site identifier from six to ten digits was an 18 months project impacting 120 applicative systems - not even counting the vast grey territories of regexes and office macros.
We are powerful, but setting ourselves in motion takes quite a bit of pre-heating !
All the posts I see so far don't mention what I'd consider the main positive need for many employees in large Internet/tech companies. That is essentially localization.
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.
I have a theory that company growth is due to inability to extend the "family" of core shareholders.
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.
> However, most people don’t know I’ve also had experience climbing up the ladder of these large FANG companies, actualizing multiple promotions and saving millions of dollars in the bank from salary/stock/bonuses/benefits/etc.
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.
Somehow indie hackers fail to understand that product and organization complexity do not scale linearly.
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.
A great question would be, "Why do big tech companies need so many people?"
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.
Fun read. Often times top employers play a zero sum game to lockup talent from a handful of schools. Sport teams will do the same predatory behavior by keeping a lot of talent on the bench instead of having to play against them.
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.
My view is that the ultra-sized software companies (Google, Meta, Amazon, Microsoft, Uber) have huge headcounts because they have realized something important about software:
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.
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.
I don't think the startup model of 99 teams failing and one winning for everyone is suited for FAANGs, because employees have too little skin in the game.
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.
Can't speak for all of tech, but the amount of design, skills, and technology that goes into a consumer electronics device like a smart phone is truly astonishing. Now release several of these every year. And a laptop or two. And some accessories. And innovate to keep ahead of your competitors, or just to stay relevant. That takes a lot of people with a huge variety of disciplines ranging from analog design, to operating systems, to machine learning.
Google with 283 billion in revenue (well 'Alphabet') against GMs 156 billion has 10 thousand fewer employees. In comparison of revenue to size tech needs fewer employees than the major pre-tech companies, which is basically one of the reasons for its great success.
I'm sure they do. But the tech company does not have 'many' people considering their revenue in comparison to the 'non-tech' company. We might even say the tech company has significantly less people when factoring in differences in revenue between the two companies.
OP doesn't seem to understand the nature of the regulatory state at all. Anything that attracts scrutiny from the state must comply with a lot of nonsense which consumes huge amounts of labor ... both legal and technical.
And why people who are in favor of more laws to regulate technology don’t seem to understand that regulation usually helps the large incumbents who can afford the cost of compliance. You see this all of the time in finance also.
But even non-compliance is a form of compliance! You figure out ways to get around the system, or go un-noticed, or risk the legal action.. all in ways that are easier for a big company to stomach than for a small company to risk.
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.
Even as an early software developer I used to look at massive companies and think what a waste, you could do this with so much less!
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.
It's also been a game of chicken to see who can hire the best talent the fastest and keep them off competitor's patrol. Anything to support growth. But that wasn't sustainable.
A now defunct company had an understanding that any senior director who managed to accumulate 1000 employees/contractors in their org chart would become a VP.
The reason big companies need lots of people is because if they didn’t have lots of people they wouldn’t be a big tech company. Really, that’s about it
- 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
Well as recent layoff rounds seem to suggest, big companies are discovering they don't really need that many people. It will be interesting to see this confirmed in numbers next year but I expect most of these companies will remain profitable, show some growth, etc. It will also be interesting to see if they will cut some more after this. I mean, if this works, why stop?
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.
I think this is still very narrow minded around why big tech or any large company needs so many people.
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'd say it's because bureaucracy naturally expands to fill the space available to it. Whatever amount of money the company makes, exactly enough salaries will be created to use up that amount of money.
That doesn't explain the useless engineering theater that these companies engage in, like code review and "readability", that drastically reduce IC velocity. If FAANG supposedly "only" hires the "best and brightest", then why are they so untrusting of their contributions?
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.
I had a long response typed out to an up thread comment, then remembered the rule "don't feed the trolls". I did get a chuckle afterwards when I read their username, it certainly is apt.
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?
For the most part you don't really need to understand linear algebra for most things -- engineers past have done a great job on abstracting interesting math problems away in everything.
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
I think he's probably above average in technical skills and below average in human skills. In that context it makes sense he doesn't like being told by others how to write code. I can imagine it can be frustrating if unqualified people review my code and make irrelevant comments, but usually if you're that good, why are you working with morons anyway?
I’ve seen this pattern a few times in my now long career. Above average Engineer with missing (social skills/theory/cs degree) ends up only getting experience at companies with sub par developers.
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…
Some people just hate rethinking their views even if the other person is competent. I know people like that, smart and right about a lot of things, but can't admit that they are wrong ever. I can imagine code reviews being torture to such people.
What does any of this have to do with you thinking code reviews are worthless and slows down velocity? A whole reply of strawman arguments while tossing in the word 'milquetoast' doesn't make it intelligent.
As others have pointed out: code reviews exist for many complex projects even outside of these big companies. Code reviews existed before these companies.
I strongly agree that by and large we waste 99% of the compute resources available to us on useless abstractions.
However, this is an orthogonal issue to not reviewing code. To contrast, if we push code to production _before_ review, then production is much more likely to be full of bugs, and we force people to go looking for them afterwards. I've worked in this kind of environment, and the amount of wasted resources (both compute and engineering time) is staggering. Somebody's pet project ends up taking way more compute than anybody would have deemed acceptable and we have exactly the overhead and waste you are referring to.
Better, lower overhead abstractions require buy-in, and this means it needs to work for other people than the person who wrote them. At some point it needs review and discussion, otherwise it will just be a continual edit war between competing parties.
> useless engineering theater that these companies engage in, like code review and "readability",
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.
Code reviews are not about "getting permission to code"; yes, they are a form of quality control, but they're also a way to share knowledge among a team, so that if you decide to quit suddenly, your coworkers can make sense of your code.
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.
I struggle to believe that your coworkers don't understand the basics of LinAlg and geometry. It seems much more likely that you write code which is hard to parse, can't be explained, and your concept of maintenance is rewriting it from scratch because you don't understand it a year later either.
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.
>> Writing code that other people understand is an independent skill
> 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 would you expect for code review to catch all errors? That's a false dichotomy. Code review is expected to catch some errors.
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.
> 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?
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.