Amazon's interview process felt extremely standardized, and unfortunately, in a bad way.
I applied for a job requiring specific specialized skills, which I possessed. However, they went out of their way to ask questions a person with those skills wouldn't typically be trained to answer.
For example, my work has nothing to do with graphs, but their initial screening question involved performing a topological sort of a graph. This requires a specific algorithm that one either knows or doesn't.
Similarly, their system design question focused heavily on distributed databases, even though someone with my background would have no knowledge of them.
The puzzling part is that they complained about having a hard time finding people with my skills. They claimed to have been "forced" to fill their open requisitions with standard distributed systems engineers.
Of course, that's what you have to do if your interview process filters out anyone who isn't a distributed systems engineer. Yeesh.
Resolve dependencies by performing a topological sort of a graph.
Implement the Linux "find" command.
Implement a set whose members have an expiry time and delete themselves when they expire.
Design Ticketmaster.
The following metrics were computed from 1 interview experience for the Amazon Software Engineer II role in San Francisco, California.
Amazon's interview process for their Software Engineer II roles in San Francisco, California is extremely selective, failing the vast majority of engineers.
Candidates reported having very negative feelings for Amazon's Software Engineer II interview process in San Francisco, California.