Good engineers can come from anywhere, just like bad engineers.
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.
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.
Interesting. I find that Google is retirement home engineers. Netflix is top quality if they didn't join first in 2020. Meta is same as you. Microsoft is questionable.
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.
I've seen a somewhat surprising amount of bad from Apple FWIW. Uber is kind of this weird snowflake because it grew its eng org way too fast then shed a ton of people in their layoffs.
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)
The Engineers in Defence look at all other Engineers like this. FAANG to me means your a sheeple who trades off dignity for aspiration. A Defence contractor just means your smart and well meaning and get unlimited budgets but ultimately your just a pawn in a large bureaucratic nightmare paid to keep your secrets secret along the way loosing all sense of self and freedom.