I've worked with code for a long time now, I've come to realise that every 'simple' request is only simple on the surface. As any system grows, so does the number of considerations that have to be made when implementing a new feature or change to existing functionality.
My 'old' laptop was a Macbook Pro from late 2013. I've recently bought a new laptop and will be ditching macOS for personal development and using Windows.
When developing, sometimes you might find yourself repeating things within the same context. I generally try and follow a one, two, many system for a rule on when to stop just adding on to something and refactor / try an approach that makes it easy to scale.