MSFT and Meta have bad and good depending on the team.
Uber and Amazon have the most surprising incompetence. I interviewed a Staff eng from Uber that couldn't figure out a junior engineer interview.
But the Amazon thing is surprising a little. Some of the guys I've spoken to from there were fantastic!
I guess I could be a terrible judge. Or I could be over-indexing on the guys I've encountered. Or there's some team effect here that I'm missing.
Well, thanks for sharing! It's useful.
I had a junior system admin working for me in ~2012. He wasn't bad, in general, but he was extremely dishonest. We had a failure in a raid volume and volunteered to do the work, got trashed at a trivia night and then completely destroyed the system before passing out. This was one of many, many issues with him that were all documented.
I have another friend, a woman, who had five years experience before working at Uber and several years there. She applied for a senior position but was denied. However, they did put her on the hiring committee for it.
My friend knew what happened with my junior system admin (and new him personally). The first thing she noticed was that his resume was completely made up- he gave himself a senior devops title, lied about his previous internship being a job, and otherwise grossly overstated his skillset. My friend on the hiring committee pointed all of this out, and said a simple reference check would resolve this.
He was hired for the senior position, she was treated like crap. He was later fired for stalking and sexually harassing a coworker. The hiring process at that company is just ridiculous.
In my observation, the really good people either climb through the ranks or they leave for non-unicorns (either for some technically interesting / otherwise fulfilling niche like edtech etc, or to create a startup/company of their own)
Engineers leave a company for three reasons:
Lack of career development opportunities -- Not being able to move up or grow in the way you want to. This is a sign of bad management.
Failure to perform -- Management and said engineer couldn't see eye to eye for whatever reason. Incompetent engineer or (worse) incompetent management.
Boredom -- Work has become stagnant, stale, or otherwise boring and management can't find a better place, or there's limited opportunities internally for someone to find new interesting things to do.
Only one of those reasons is truly something that should raise concern. Bad management makes good engineers leave.
Amazon's core problem isn't the engineering. The engineers there are sharp as tacks, in my experience. I am frequently in awe of the people I work with for their technical acumen in so many different fields.
But management training at Amazon is lacking. Managers are often ICs that have been drafted into management with little to no formal training and the amount of training that they get is often from their subordinates who were previously their peers. What little training outside "Just figure it out" seems to be mandatory HR-related content on how to handle the HR systems. That's it.
$400k+ cash and no junior engineers can’t hurt.