So breaking things up aggressively into small components you can reason about in isolation tends to be the best way to write reliable code you can maintain over time.
This is so true. Something that has really improved my coding has been having a linter that whines to me about assignment branch condition size. Compared with learning how to properly stub methods in tests it has helped me break tasks down into simple manageable chunks with little room for error.
I’m used to driving old shitboxes but a few years ago we rented a completely new car. It was almost driving itself, making sure I stayed in my lane, it had automatic beam selection, a big screen for playing music and navigation, tiny little plastic thingies that pops out when you open the door making it harder to dent adjacent cars. It was a fucking spaceship. I’m not going to lie, I would love to have all of those fancy features.