SOLID is a premature optimization
Honestly, the primary challenge I encountered with complex codebases originated from adhering to SOLID principles. Surprisingly, they appeared to turn the straightforward task of making any changes into a Herculean feat. Introducing numerous cumbersome abstractions also took a toll on performance.
Talk about actual premature optimizations!
I much prefer something like CUPID principles. More information on CUPID