the QA team should ideally do their testing on an environment that almost exactly matches the prod env (to minimize uncaught bugs that arise due to setting differences). If that's true, does the QA team typically do the testing again on prod post deployment in the googles and amazons out there? If the answer is yes that sounds redundant.. but also how can they not test production? 
should QA do their testing twice, once on staging and then again on prod?
testing;deployment;qa;production;build system
Depends what you're doing, but often you can't test in production because the system is now attached to real resources. In the case of Amazon, would you run a real order with a real credit card and wait for the book to arrive? You often need to be careful about putting test data into a production system.Once it's gone live, you're dependent on your monitoring systems to give you early warnings of bugs. Sudden drop in completed orders? Better roll back the update then go digging in the logs to find out what happened.(Arguably what SpaceX have been doing is testing in production with their rocket recovery system: it's not really cost feasible to do dummy launches, so they launch with the real payload and then see if the system can manage to land the rocket.)