It's a pretty familiar story - you start out a shiny new project with all the best intentions ✨, all the strictest compiler options and lint rules. But over time the project grows and changes, and everything doesn't always stay up to date. Now you have a few cobwebs 🕸 on some parts of your codebase that you cringe 😅 at when you come across them!
This is a totally normal part of the natural growth of an application. But how can we tackle those smells and correct past mistakes without massively blowing out the scope 🤔?
Let's discuss a generic approach to incrementally improve many aspects of our codebases! We will take some ideas from genetic algorithms and micro-service architectures, and combine them with code analysis and snapshot testing, and introduce a pragmatic, *evolutionary* approach to codebase health and maintenance.