>>5213820You have to like breaking complex problems down and finding elegant solutions to them.
I find it particularly satisfying when I can generalize a problem to the point that I can write ONE single, big, complicated piece of infrastructure that then goes on to become the backbone of tons of other work by both me and other people
The last refactoring I did, on a ~4 year old project, involved rejoining two pieces of what was ALREADY infrastructure and was used in ~15 business processes, but had been entirely copied and pasted ONCE by someone three years ago and then over the years the two implementations had diverged so far that the comparison tool crashed when I tried to compare them.
Also the various processes were a clusterfuck of overriding methods that was very hard to follow and bug prone.
I rewrote the entire thing using an event dispatcher-handler pattern and thanks to this refactoring we were able to delete over 3500 lines of code and reduced the number of lines necessary to handle a new process by over 100-150.
Code duplication went down 7% across the entire codebase, too, and this solution is much more elegant and allows greater, easier and faster reusability of preexisting modules.
I like doing this kind of shit. Wish I could do this all the time rather than spend time making boring excel spreadsheets to jew as many shekels as possible from our clients.