Design Patterns: Elements of Reusable Object-Oriented Software
Domain-Driven Design: Tackling Complexity in the Heart of Software
Patterns of Enterprise Application Architecture
UML Distilled: A Brief Guide to the Standard Object Modeling Language (3rd Edition)
Working Effectively with Legacy Code
Clean Architecture: A Craftsman's Guide to Software Structure and Design (Robert C. Martin Series)
Refactoring: Improving the Design of Existing Code (2nd Edition) (Addison-Wesley Signature Series (Fowler))
The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (2nd Edition)
Writing Effective Use Cases
Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems