Over years I've accumulated my personal list of books that, in my eyes, never received as much attention as they deserve to. None of them are technology-specific, and I would recommend any software engineer to read them.
- "Becoming a Technical Leader: An Organic Problem-Solving Approach" by Gerald M. Weinberg;
- "Communication Gaps and How to Close Them" by Naomi Karten;
- "Implementation Patterns" by Kent Beck;
- "Refactoring to Patterns" by Joshua Kerievsky;
- "The Mikado Method" by Ola Ellnestam and Daniel Brolund;
- "Dependency Injection Principles, Practices, and Patterns" by Mark Seemann;
- "Building Evolutionary Architectures: Support Constant Change" by Neal Ford et al;
- "A Philosophy of Software Design" by John Ousterhout.