Software Design Patterns
This is the basics. Every software developer needs to understand these things. Im far from saying that this book contains the only rules you should ever follow when creating software and using patterns. I think you need to mix and match these and other patterns to help you solve the problem. But having everyone know these basic patterns and be able to speak to them from the same context is a great thing.
Mythical Man Month
https://www.amazon.co.uk/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959
Even though this book is over 30 years old it still has some excellent insights into the work we do today building software. The thinking and thought that has gone into this is great. This really should be one of those books that you re-read whenever you are having a tough time working out processes within a team.
Clean Code
https://www.amazon.co.uk/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882/
This is a great book that really teaches you about how to reason about clean code and understanding why you should make decisions about the way you write your code. I don’t maybe agree with all of it but there is a lot of good here. It will certainly help you think about the why and understand the impact of the things that you do.
The Phoenix Project
https://www.amazon.com/Phoenix-Project-DevOps-Helping-Business/dp/0988262509
I’m sure every software engineer or IT operations engineer would recognise every part of this book. Well written and always relevant, a great deep dive into what we can do to make IT projects run better.