The development of high-quality software systems is a complex process involving various phases and activities. As software systems grow in size and complexity, these tasks become increasingly challenging for developers, and a significant effort is needed to maintain software quality during its evolution and prevent systems from becoming costly, error-prone, and unsatisfactory. To address these issues, researchers have sought to automate various tasks within the software development process. Search-Based Software Engineering (SBSE) is a research area that focuses on reformulating software engineering tasks as optimization problems and designing algorithms to solve them. By automating these tasks, SBSE aims to enhance software quality, reduce the burden on developers, and lower associated costs. This chapter provides an introduction to the field of SBSE, detailing some of the most widely studied families of optimization problems in the field: software project scheduling, optimal feature selection, software test case generation, and software module clustering. The chapter concludes with some insights and references for further reading.