The overarching goal of computational protein design is to gain complete control over protein structure and function. The majority of sophisticated binders and enzymes, however, are large and exhibit diverse and complex folds that defy atomistic design calculations. Encouragingly, recent strategies that combine evolutionary constraints from natural homologs with atomistic calculations have significantly improved design accuracy. In these approaches, evolutionary constraints mitigate the risk from misfolding and aggregation, focusing atomistic design calculations on a small but highly enriched sequence subspace. Such methods have dramatically optimized diverse proteins, including vaccine immunogens, enzymes for sustainable chemistry, and proteins with therapeutic potential. The new generation of deep learning-based ab initio structure predictors can be combined with these methods to extend the scope of protein design, in principle, to any natural protein of known sequence. We envision that protein engineering will come to rely on completely computational methods to efficiently discover and optimize biomolecular activities.