- Head first object-oriented analysis and design
- Head First Design Patterns
- Clean Code
- Clean Architecture
- Refactoring: Improving the Design of Existing Code
- Patterns of Enterprise Application Architecture
- Design Patterns: Elements of Reusable Object-Oriented Software