Wondered if I could ask... is Google a relatively normal place to work? I currently do my own thing but I would love to work on projects that go far due to the amount of talent involved... but at the end of the day I'm just concerned with "office politics" I get the vibe that you have to "pick sides" which might just be an availability bias due to the news stories. I guess just relatively speaking, when talking with Amazon I get a different feeling. Recruiters probably aren't the best way to judge a company though, so figured I'd ask.
It's fairly normal for a big company these days: extremely slow pace, red tape all over the place, your level matters more than your skill. It's an engineering-led culture so there's a lot of focus on code nitpicking and purity (arguments over whether mocks are evil, etc).
Great place to work if you're high level (5+) and land on a good team with a good manager. Mind numbingly boring if not.
Evil enough that new mocks should be banned by fiat and enforced by code that requires rarely granted permission to override against projects that are 5 years old and already have hundreds of them in place and do not have architectures that support better ways of testing?
It might be a nice thing to avoid them, but you're always working with legacy code, and I've literally had "I need to add a button to accept new permissions" blow up into "I need to refactor our entire class structure across 200 files because I'm not allowed to add a new test that follows our old patterns nor commit this code without coverage, and oh yeah, nobody wants to review that CL in one go so I have to figure out how to break it into 20 bite sized changes. There goes my quarter...". That's just dumb, and that type of dumb is very fashionable at Google.
This is a vast oversimplification of mocks. Mocks themselves aren't evil, they just enable subpar programming. I'd much rather spend 2 minutes making a functional test with a mock than 2 days rewriting a bunch of core functionality in the name of code purity.
I would never try to judge a work environment by the recruiters (unless the recruiters are unusually bad, which could suggest a toxic management culture). If at all possible, talk to actual engineers.
My two cents on Google and Amazon: Both companies are large enough that making blanket statements about company culture is a dangerous game. What you need to do is find out which silo you would be working in, and try to figure out what the culture is like in that silo.
One thing you can grill the recruiters about is what the employee review process looks like. Both Google and Amazon use stack ranking, which is about the most brutal system there is. At Google, feedback from fellow engineers factors heavily into your performance reviews. Amazon seems to be more focused on measurable performance goals and demonstrable contributions to the company's bottom line.
> Both Google and Amazon use stack ranking, which is about the most brutal system there is.
This isn't really true (at least at Google, IDK about Amazon). "Stack ranking" historically has two components:
1. Being rated relative to your peers as opposed to a rubric.
2. (Usually fast) removal of the lowest performing individuals.
When combined, these become "fire and replace the bottom 3% of people on every team every year." The downsides to this approach are that if you're on a strong team, you may be a median employee, but be the weakest on your team, and be forced out for this reason. It's clearly problematic.
IDK about amazon, but the first is only half present at Google, and the second isn't really at all.
In some sense you are rated to your peers, not a rubric. But only in the sense of at aggregate (that is, in an organization of 1000 people, you'd expect ~30 people to be in the "worst 3%" category, so if only 10 are, that may raise some questions.) This removes the competition and potential animosity with your direct peers and aligns more with the rubric based idea, though it is possible that a an organization may have across the board above-average (or below) performance on occasion.
For the second, people with NI ratings aren't immediately fired (I know of a few people who got NI and found new teams and much more happiness), though obviously consistent NI could result in that.
IMO it's easy to avoid politics, activism, and the associated drama if it doesn't interest you. Most people seem uninterested in that stuff. I think you're spot on with the availability bias assessment. It exists and there are conversations happening all the time, but nobody expects you to participate.
Amazon has a more singleminded focus on succeeding in the business and making money. This can be good or bad depending on your personality and goals.