Waited 4 weeks for first phone screen interview with interactive pseudo code writing elements. They asked me about an O1 performance question when implementing a Tic-Tac-Toe game on an any sized board. This seemed like an odd question to ask somebody who has over 15 years experience and worked for some of the biggest names in the industry on cloud technologies at huge scale, e.g. billions of network transactions per hour.
The most interesting part of the interview was after the interview question when I got to ask questions:
It turns out that the way Amazon implements their in-memory database service is my hacking the open source memcached and redis projects which are also both C language projects. However, according to the interviewer Amazon does not normally contribute their changes back to the projects. He wouldn't answer why not. Also, although the work is mainly performed in C, Amazon specifically want to hire developers who are also very knowledgeable in Java. Why? Because it's company policy to only hire people who could develop in the hiring team *AND* other teams within Amazon. And Amazon uses a lot of Java. I asked how long the job would last for working on the in-memory storage team and the reply was that it would last indefinitely. I asked how big the team is that I would be joining but the interviewer would not say or give a ball park figure.
Asking the interviewer about quality assurance:
Does the Amazon team write automated tests for the code they augment the open source memcached and redis projects with? Yes. Mainly at the system level but also some unit tests too.
Does the Amazon team track code coverage for the production code that they add using their automated test code? No. Apparently because internally Amazon powers that be give policy to avoid QA measures like this because it is considered too costly in terms of resources.
How does the Amazon team know when it has created enough automated tests? By peer review only.
Does the Amazon team do other QA measures like pair programming? No, but it might be possible on some other teams sometimes.
I also asked the interviewer whether he was aware that I'm the author of one of the fastest open source NoSQL DBs available: No, he was not aware. Doesn't he read the resume before the interview?!
Summary: QA at Amazon on the in-memory storage team seems to be so-so. I find it's a bit unfriendly of Amazon to use and improve open source projects and then not contribute back to those projects. All in all, there was little sense during the call regarding excellence in engineering or pushing the envelope regarding innovation, performance, or quality. In the end it was a relief when Amazon rejected me without explanation... but I'm guessing it's because I wasn't enthusiastic about working with Java.