Engineering biological systems that are capable of overproducing products of interest is the ultimate goal of any biotechnology application. To this end, stoichiometric (or steady state) and kinetic models are increasingly becoming available for a variety of organisms including prokaryotes, eukaryotes, and microbial communities. This ever-accelerating pace of such model reconstructions has also spurred the development of optimization-based strain design techniques. This chapter highlights a number of such frameworks developed in recent years in order to generate testable hypotheses (in terms of genetic interventions), thus addressing the challenges in metabolic engineering. In particular, three major methods are covered in detail including two methods for designing strains (i.e., one stoichiometric model-based and the other by integrating kinetic information into a stoichiometric model) and one method for analyzing microbial communities.