When in doubt, refactor at the bottom
We explore when it is safe to extract out an abstraction and when you need to go deeper and rebuild it from scratch.
Tags: abstraction, refactoring