One of my favorite (technology) books I've read in the last few years has been A Philosophy of Software Design by John Oosterhout.
In the README above, there is an ongoing discussion between John and Uncle Bob, the author of Clean Code. Also a great book, but I personally found APOSD more aligning with how I see software design.
I'd highly recommend reading the entire link. I agree with John on comments.