Why isn’t every talented developer trying to work there?
Is it just that they don’t want to take the time to study Leet Code? Or are there other reasons.
Thanks
Otherwise, plenty of reasons, many dependent on specific companies. Some examples based on both first-hand knowledge and hearing from others:
Facebook/Meta - tough performance culture, bad work-life balance, terrible public image
Amazon - toxic exploitative culture, bad work-life balance, sliding public image
Apple - secretive culture, bad work-life balance
Netflix - unique performance-oriented culture that won't fit everyone (see the infamous culture deck)... but interviews are team-specific and not necessarily Leetcode-oriented
Google - growth is difficult, sliding public image
Keep in mind that these are aggregate impressions based on many anecdotes. Some teams will not exhibit the same issues. Some people are also not bothered by the same issues you might be (and vice versa).
Interviews at google seemed 50/50 split leet code (or interviewer showing off being clever) and reasonable questions.
I recall thinking that my MS interview questions seemed perfectly reasonable, but that was too long ago for me to recall specifics.
As a someone who has been the interviewer I think that people really don’t understand what whiteboard interviews are doing, and a number of claimed “leet code” questions are not. Part of it is that if you’re interviewing at Apple or MS knowing basic algorithms and complexity analysis is important because working at those companies you will be the one implementing such things so other developers don’t have to.
A lot of what people are calling leet code on HN, Reddit, etc are what I would consider foundational knowledge, not anything crazy.
But leet code questions are still riddles to me. I have also been watching videos of some famous programmers solving leet codes on YouTube and even they get stumbled and take almost an hour to solve some of these questions.
But once I have seen a solution and memorized general approach, I can solve it under 20 minutes. To me, leet code is more about memorization than actual problem solving skills.
If you're applying to, say, Google, you do this once then have a very well-paid job for life (theoretically). That, to me, is a good trade-off.
1) Dealing with climbing the corporate ladder, covering your ass from backstabbers, and all sorts of company politics are bad enough to deal with in fairly small companies where you might have a handful of business relationships to deal with, let alone in mega-corporations where you might be working in one small project department with dozens and dozens of people and several layers of managers.
2) Big companies have essentially become centers for identity politics, not sitting down and writing code and solving creative problems. Somehow good things like being kind to all and treating everybody as you'd want to be treated have morphed into (mostly people who have infiltrated HR departments) preaching anti-whiteness and anti-male hatred. I do some consulting for companies and have been put on a handful of their internal mailing lists so I directly see what kind of racist filth goes out to the actual employees.
Whenever I see something about "blacklist" or "master vs main," I wish I could ask the people behind it "don't you have something better to be working on?" It got to the point that "blacklist" is a trigger for me, not because I find the term offensive, but because I don't want to deal with the flamewar that's soon to follow. I go out of my way to not name things "blacklist" or "blocklist" just to avoid this.
As somebody very skeptical of this characterization but that admittedly does not work in FAANG I would love to see a copy and pasted example.
https://www.msn.com/en-us/news/world/coca-cola-accused-of-re...
https://nypost.com/2021/10/29/att-offers-staff-critical-race...
You need to provide examples to back up your claims. Examples that aren’t simply “company is trying to recover from its historically racist and sexist recruitment policies”
Aside from some exceptions, FAANG in general is not that “talented geeks disrupting the world with brilliant ideas” thing anymore.
It’s a big serious business for a while now.
Hence bureaucracy, average but obedient developers, low signal/noise ratio, slow carrier growth, extra layers of management, no freedom.
Not much talented developers I know of who are dreaming of working in these conditions.
The only hiring selling point is money. You don’t need me to tell you that this is the worst motivator for talented people.
To exemplify: https://paygo.ghost.io/why-did-i-leave-google-or-why-did-i-s...
I am the same age as them, make more money, live in a more pleasant place (i.e. not an overpriced West Coast city), and have a lot more free time and freedom.
I did this by working at (or starting) boring lifestyle software companies that sell for $10-100M.
Yes, I do realize that. I meant that I have always made better money than people in Silicon Valley make (when adjusted for inflation), and I did it while working for these types of businesses.
Nowadays I do start my own, but if I were just a salaried tech worker, I would still be working fewer hours and have more spending power than someone working for Amazon or Netflix.
What is your job? What is this "pleasant place?" How much more money are you actually making?
Sorry, I meant that it's a lifestyle business that sells software (as a service).
Lifestyle businesses are so-called because they support the owners having a certain lifestyle. As the sibling comment says, this is something that is generally admired outside of Silicon Valley and mocked within Silicon Valley. I feel sad for people who are proud of working their lives away, but that's a different topic...
> Asking so I can make and sell a $10M company someday.
There is a formula to it, but it's still not a guarantee. Here is the formula I use:
1. Meet people in boring jobs or industries, or just make a diverse group of adult friends
2. Talk to these people about what wastes the most of their time
3. Find a way to automate it
4. Get your friends in that industry to sell it for you
The biggest problem is #4. Getting the sales is hard because most industries are stagnant because of deep-rooted complacency. The ideal way to do it is to get someone who can be your first customer, convince them of the potential, and get them to be on your board.
It definitely helps if you're overpaid in your day job and can just pay other people to build prototypes for you. Trying to build prototypes in your evenings/weekends is pretty brutal and violates the whole idea behind this.
That's true...big companies just have that infrastructure thing ironed out. There's bureaucracy (like having to get security to sign off on some new software), but there is also support. It's not FAANG but I work at Disney and a question came up about transferring 8K video files back and forth between documentary filmmakers and editors who are now working remotely due to covid. Before going down the rabbit hole of researching options to get it done, we got Pixar on the phone to see how they do it. That would have been tougher at a plucky startup.
I was recently frustrated with a poor quality open sourced FAANG library. At one point the error message was something like "Successful: operation failed."
There are also the cases where services are just built on open source components, then branded.
I have much preferred working and integrating with open source components, as when something goes wrong, at least you can see what is happening.
So, yeah. If you like endless, bloodthirsty cutthroat competition under florescent lights and security guards treating you like freaky garbage then how could you not want the modest benefit that comes with working from a huge company instead of a smaller one that is actually in contact with customers and doing meaningful work for them on a regular basis?
Just work remotely.
It's also hard (possible, just hard work) to get promoted and usually not up to your boss. This isn't a downside exactly but it's different and can be frustrating.
There is a golden handcuff quality many people find where they don't care for the job all that much but the pay is so good it feels crazy to leave.
It's more about "who you know" than you might realize.
Politics: present at all companies, big and small. My wife worked at multiple startups and the politics and behavior were vastly worse than she experienced anywhere else outside of academia.
Bureaucracy: this is kind of true, but good management tries to minimize it. Across multiple roles that only real bureaucratic problems I ever had were disclosures, and generally they either happened immediately or I didn’t actually need them. Some bureaucracy that you definitely get at bigger companies is HR related, but oftentimes that’s because small companies don’t have dedicated HR. That can lead to serious problems of it’s own.
Impact: far too team specific, certainly at a smaller company you have the potential to have a greater impact on the business itself, but you also have a lower probably of having impact outside of the businesss.
Work/life balance: outside of crunch periods I never had any work/life balance issues. Those are much bigger issues at small companies and startups. Generally what I see is that when people come into a FAANG straight out of college they still have the college “100% work all the time” mentality. They also don’t have experience in actually releasing software: it takes time to learn to actually realize that not everything is “must ship critical”. It took me a few years to get to “this bug does not actually impact users, so it is ok to punt to a follow on release”
The big thing to note is that politics and similar is a /much/ bigger issue outside of engineering: program management and organizational management tend to have an element of “we have to fight about who gets resources”. But again IME the FAANGs I’ve worked at have many more systems in place to limit that. When it goes wrong is when you have politics at high levels in the organisation: VPs, etc. Geberally though in IC positions you’re insulated from that by distance - but at smaller companies that distance is reduced and becomes sad.
Later, when my manager joined the program too I got to demo the Fire Phone for him. I could see disappointment in his face as he asked me - "Will you use this phone when it comes out?" I told him no. And he said "Maybe if they give it to you for free?" I turned the question back to him and he thought for a moment and said "No." I agreed.
There was a meeting where the business people told us how good we were doing, what the schedule was, how our partners at the carrier loved the phone and how the users they surveyed loved it too. Someone asked
"What build were they using?" And a lot of people laughed like it was a joke. But I detected the hint of earnestness in the asker. He, like me, was just kind of confused at what he was hearing and trying to figure it out.
Every project I worked at Amazon was like this and I worked on quite a few. Crushing, depressing failures that everyone I worked with saw coming. But also, it didn't effect our careers negatively at all.
There's a disconnect between your output and your career. You can deliver features on some program that never sees the light of day or is simply an embarrassing failure for your entire career. And, it doesn't matter because somewhere in the company is an effectively infinite money generator which will keep you and your colleagues well compensated even though, realistically, there would be no difference between you working hard and you doing nothing at all.
By the time I quit Amazon I was so deadened by the feeling of contributing nothing and meaning nothing despite working quite hard I just started to let things go. I refused to read my email as a general principle. I'd sometimes respond on Chime. I'd go out on day trips and just check my phone once or twice all day. My productivity dropped off to zero as I just didn't care any more.
Internally, I felt this conflict between being a brazen parasite - intentionally not working but still getting paid, and feeling like I had always been a parasite - working on stupid projects and getting paid because of the lucrative ones I had no part in. After a couple months it got to be too much and I just told my boss I was quitting. He actually persuaded me to stay on a couple more months to help with the transition and to wrap up some of my tasks. Well, I was more persuaded by the chance to let a little more stock vest, but still...
It's not all bad. I found the experience quite lucrative and I don't need to work for the foreseeable future. I did find it kind of soul deadening though.
I'd love to work at a competant and impactful organization on something meaningful. The problem is, I genuinely believe that the probability of such an organization existing, and of them hiring, and of my having the right skill set, and of my learning about, applying to, and passing the interview, is essentially 0. Now, I struggle daily to avoid the cynicism you described so well.
But maybe I just have low expectations or am in the right line of work.
Upsides: pay is decent, a number of really smart people there, good places to learn.
Some the more general reasons to not work at one are
- The tech stack is idiosyncratic
- You won't necessarily be exposed to the same breadth of experience
- You won't know most people at the company
- Less agency as an engineer
- More organizational overhead
- You're not good at leetcode or don't want to put in the time
- Your work is often less connected to a tangible problem
- You're a cog
Reasons to work at one
- The pay
- It lends credibility to your resume
- Higher ceiling for star performers
- Stability
- Learn how things work at scale
- Better perks
Oh, one huge one: different people are better at different stages of a product's lifecycle. No time for tests, monitoring, alterting, or code reviews? An early startup might be a better place because they don't have time for those, either.
$ is good, sometimes the team can be good, but there are lot of drawbacks: coworkers are spoiled, learning is stunted because most things are taken care of, more about solving people problems than product problems as you move up, more about performing for specific individuals rather than helping customers, scope is limited, etc.
This article resonated with me: https://www.productlessons.xyz/article/why-harvard-faang-ove...
Focus. One of the FAANG culture diseases is to do a lot of engineering work of dubious to negative value. Doing NIH versions of popular open source projects or migrating and replacing stuff that works fine with stuff that works at best a little worse. When engineering time is more scarce, you’re more likely to be doing something important.
Part of this is that FAANG is often willing to spend $20M to try to move the needle 1%, or $100M for the next big thing, even if there's only a small chance it works.
Software has almost limitless potential to improve people's lives and personally I prefer to use whatever talents I may have to that end. It doesn't pay as well as adtech, fintech or social networking (though here in the UK the difference is far less than in parts of the US) but it can be much more useful and/or interesting.
If you like hacking on features, not having to do robust A/B testing or walk through tons of leadership / management hoops, and having a wider role in the development of something, then a smaller company or startup would be better.
TLDR: as with any thing in life, it depends on the person, and what makes you happy at work.
Definitely. Working for big companies sometimes makes you miss the days when A/B testing was the only tedious part of the SDLC. I have now dealt with legal review (checking every single page to verify that correct disclaimers display to different types of users, or e2e testing of CPRA delete my data functionality) and financial integration testing (replacing Stripe with a different payment processor that integrates with backend accounting software, and verifying that deposits, balance due, payment plans, adjustments, and refunds flow to the correct account and cost center).
What FAANG these days has going for it is just the compensation. But that attracts the wrong crowd when compensation is the only motivator to work for a company. Talk to hiring managers, they have a ton of issues on the hire and fire front.
You might be surprised, but most high potentials are looking beyond compensation and want to do something they can identify with and are passionate about while having a good work-life balance. One of the things that makes them high potentials to begin with, compared to the leetcode solvers, who are a dime a dozen and are just compliant little worker bees who glady exploits themselves.
For me FAANG was a good time, but as a seasoned professional I never had to jump through any hoops. But it's not the FAANG I once joined and was passionate about. That FAANG is not at home anymore. Sure, YMMV. Just my personal experience and point of view.
Pros: If you join the right team at the beginning, you can be on a rocketship and have 'exciting engaging work' (subjective)
Cons: It's not all 'talented developers solving hard problems'. As you level up, there's a ton of politics and excessive, unnecessary complexity caused by throwing as many eager, highly-paid engineers on problems with incentives optimizing for individual production.
Most successful Google projects are directly tied to 1 or more promotions for the key contributors of the project. Google's internal economy runs on perf - there's a lot of fixation of position and authority, particularly as you get L5+. L3->L5, you can largely ignore politics / crank out working systems and be successful.
If you are an early engineer on a team (even as an L3), it's not too hard to become and expert (especially if you front-load by working excessive hours early in your career).
Flip-side, you can be extremely talented (in one way or another) and be put on a team and projects that emotionally drain you and make you question your purpose in life.
I've talked to a lot of Googlers who are just as frustrated with their almost 'lavish' 6-figure silicon valley jobs and end up quitting. The causes are mixed - mostly politics, unnecessary complex, or the nature of the work (often monotonous or frustrating - mostly due to the nature of google3), commutes (less of an issue now), wanting more e2e ownership, more 'work satisfaction'.
If you want to do the most engaging work of your life where you learn the most - you're generally probably better off with newer teams/projects/systems - e.g. at a startup. A few years on almost any system and you'll be an expert - as long as the system lasts that long.
If you're looking for a comfortable, high-paying tech job - FAANG can be nice, but you need to make sure you enter onto the right team with the right expectations all around.
p.s.: shameless plug: I'm now building (early stage) a 'web3 game server' on Solana: solanagameserver.com. #tardigrades
Always a bad choice