"A Philosophy of Software Design" by Ousterhout is my favourite of the last few years.
It's a shortish book but there is stuff in it I'm still unpacking on the third read through and a lot of stuff I sorta instinctively knew but it's nice to see someone else thinks the same.