- Patterns of Enterprise Application Architecture
- Domain Driven Design
- The Clean Coder
- Working Effectivelly with Legacy Code
- Refactoring: Improving the Design of Existing Code
- The Passionate Programmer
- Growing Object Oriented Software, Guided by Tests
- Effective Java
- Java Concurrency in Practice
- Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions
- Design Patterns: Elements of Reusable Object Oriented Software