Iβve seen many engineers (and been) strive for some form of perfection. Improving performance, introducing one last abstraction or concept β something to take what they have into something theyβre proud of, that will stand the test of time. The problem is, no software stands the test of time. Software constantly changes, and any perfection that is baked into it now will inevitably be removed later. And it will probably be detested later.
In many cases, strive for the bare minimum. Get something working, get it in front of customers, they will tell you what to improve. Maybe performance improvements are needed, maybe that last abstraction helps solve your customers next problem β but maybe, they want something completely different, something you never predicted. Deal with reality and not with idealized software, or what it can be.