A colleague shared this video from John Ousterhoudt about software design which I found quite interesting and recommend watching:
https://www.youtube.com/watch?v=bmSAYlu0NcY
I agree with a lot of what he said and I’ve bought his book to read through his principles in more detail.
For me, software design intuition has been driven by simply practical experience - building a of software, doing a lot of refactoring and noticing what works well. After reading someone’s design doc or piece of code, I usually have an immediate gut feel about whether it’s good or not based on my intuition but it can be difficult to explain why to the person. I’m hoping that referring the John’s principles may help.