I did not get the job, so you might want to take what I say with a grain of salt. The interview was with Amazon.com, the job was writing monitoring system to prevent faults within their systems. I did not really get the impression that their engineering groups are all that great at this. While everyone seemed competent at their job, they all seemed to be under immense pressure. This was further underlined for me when at lunch the TPM told me that her ideal staffing for the team was 14 and there was no way she could really expect more than 2 or 3 engineers. When there is such a disconnect between what they are able to get and what a PM thinks is ideal, there's a problem. I can understand why they will want to hire tens of thousands of engineers in the future. It seems to me that there is no overall understanding of their architecture. Everyone seems perpetually confused by the fact that hardware is not 100% reliable. More than one person mentioned something like "Well, we can be sending packets but if the other end isn't listening what do you do?" It seems that a single hard drive filling up caused an entire AWS data center to go down. I simply am unable to understand how this could have happened, it is not all that difficult to come up with engineering solutions that are near infinitely-scalable, especially with the amount of money and theoretical engineering talent they have. I would guess that their fundamental problem is that they do not understand the difference between good coding and good engineering, and their solution is to keep throwing more code at it in the hope that that is the solution.
If you get an offer, I would recommend you take it, simply because they have lots of money and you will get the opportunity to write good code. However, be prepared to work hard, and eventually, you are certain to be in a position where you will have to take responsibility for things that are not your fault.