A friend of mine working in Amazon forwarded me for a role in their Kindle division. That led to a phone interview where I was asked for an optimal search pattern in a binary tree.
Now here is where the problems begin. The interviewer did not seem to accept my answer "it depends on the data" and "I never write an algorithm myself without researching for an existing implementation first" and seemed to feel I was avoiding the question. My maxim is that the best coders always avoid writing new code - new code is buggy, and half your time goes on debugging, so maximising productivity equals trying to never write new code. Anyway I kept arguing, but after ten minutes I felt compelled to give him what he wanted so I told him "this will be a very poor answer" and I wrote out an O(N^2) answer.
The interviewer then wanted me to optimise it. Again, I argued that is impossible without knowing a lot more about the data. He then suggested a technique which involved traversing to the top of the tree from each node until the paths overlapped, which is a compsci textbook 101 answer but anyone experienced knows that that approach tramples all over the CPU and TLB caches if the binary tree is a linked list randomly spread over memory, which it usually is. In other words, it's a hidden scaling limit because it adds pressure to the memory bus, then you hit the memory wall sooner. Often, it can be better to use a O(N^2) or even a O(N^4) search adjacent to a node in order to improve data locality because the link pointers don't introduce as many read stalls.
Anyway, I digress. I repeatedly suggested to the interviewer to look at my resume rather than get hung up on compsci 101 algorithm questions. I am the author of a few well known and popular open source algorithm implementations which one would have thought would suffice. I also serve on ISO Programming Language standards committees. Either the interviewer did not know what those are, or it didn't matter to him.
Ultimately, it makes little difference to me - finding employment isn't hard for someone with my background. Glassdoor wanted a review to unlock my new account, so that's my review. In short, I think Amazon focuses far too heavily on elementary compsci questions in their recruitment process. What's far more important in an engineer is how good they are at finding an existing implementation and adapting it for purpose. The best engineers always avoid writing new code, and *especially* new algorithms whenever they possibly can. I think I've written no more than three new algorithm implementations in the past five years - each has gone on to be a roaring success as an open source library, which suggests I'm very good at it. But honestly, it's simply bad engineering to constantly reinvent the wheel. Recruitment shouldn't look for people who do!