One of the best software design books I've read is "Domain Modelling Made Functional", from Scott Wlaschin.
It's about F#, but it remains a good read for any software programmer, whatever your language.
And it's easily understandable, you can almost read it like a novel, without focusing too much.
Though what may need some brains is applying the functional concepts of this book with your favourite language...
https://learn.microsoft.com/en-us/dotnet/fsharp/language-ref...