
It really depends what you're looking for. If you want something deeper, more abstract, I would recommend going straight to something like Notes on the Synthesis of Form by Christopher Alexander, which I think typically appeals to the more abstraction-oriented part of the mind of engineers. If you want to get more actionable, practical day to day recipes, Refactoring UI as suggested somewhere else in the thread is a decent suggestion.
IMHO it should be required reading for all programmers and designers.
I'm of the opinion right now that what we call "design" and "architecture" is really just the science of finding stable habitable zones in high-dimensional problem spaces.
What's cool about Alexander's work is that he makes a great case that this stuff is objective phenomena that can be studied!
I'm planning to write much more about Christopher Alexander on my own blog in the future, but meanwhile I can recommend Dorian Taylor's excellent works:
• https://the.natureof.software
I gave a talk on this subject at DDD Europe this year, so keep your eyes out for "Timeless Way of Software - Taylor Troesh" on their YouTube channel :)
A Pattern Language is great but a lot of folks miss that it's part 2 of a greater work, with part 1 being The Timeless Way of Building.
Another great Alexander book that flies under the radar is Notes on the Synthesis of Form. It's a little hard to read but there is deep deep insight about design and the design process in that little book. Highly recommend.
And lastly, anyone interested should read A City Is Not A Tree: https://www.patternlanguage.com/archive/cityisnotatree.html