It’s not overengineering if it works. The thing to care about is over featuring or building features that are not worth their human cognitive cost, or just engineering too fast.
It’s only gonna become more of a problem in the future.
Now that models are superhuman in basically every dimension related to programming, trying to keep a “traditional” grasp of our code (which was flawed anyway) is just capping the model’s capabilities. And if you disagree, just wait for the next generation then.
Meaning: we have
A lot of what looks like sol overengineering stuff, adding capabilities and providers and executors and what not, kind of really isn’t. It’s a lot for humans at once, but it actually removes complexity from the debugging process, and getting rid of it not only eats tokens, but