The widespread use of monoclonal antibodies for therapeutic applications has led to intense interest in optimizing several of their natural properties (affinity, specificity, stability, solubility and effector functions) as well as introducing non-natural activities (bispecificity and cytotoxicity mediated by conjugated drugs). A common challenge during antibody optimization is that improvements in one property (e.g., affinity) can lead to deficits in other properties (e.g., stability). Here we review recent advances in understanding trade-offs between different antibody properties, including affinity, specificity, stability and solubility. We also review new approaches for co-optimizing multiple antibody properties and discuss how these methods can be used to rapidly and systematically generate antibodies for a wide range of applications.