In this talk I will give an overview of various strategies we have developed for suppressing the inevitable errors occurring during quantum computations. These tools work at the gate level and thus can be effective even through a cloud API exposing only elementary gates to the end-user. I will demonstrate the effectiveness of these tools with experimental results across multiple hardware architectures.