Re-Engineering Legacy Software is an experience-driven guide to revitalizing inherited projects. It covers refactoring, quality metrics, toolchain and workflow, continuous integration, infrastructure automation, and organizational culture. On the technical side, readers will learn techniques for introducing dependency injection for code modularity, quantitatively measuring quality, and automating infrastructure. On the strategic side, they'll develop practical processes for solid decision making. Core topics include deciphering and modularizing awkward code structures, effectively integrating and automating tests, replacing an outdated build system, and infrastructure automation using tools like Vagrant and Ansible.