Every Programmer Should Read


Accelerate: Building and Scaling High Performing Technology Organizations
Dependency Injection in .NET
Refactoring: Improving the Design of Existing Code (Addison-Wesley Signature Series (Fowler))
Code That Fits in Your Head: Heuristics for Software Engineering (Robert C. Martin Series)
System Design Interview – An insider's guide
Team Topologies: Organizing Business and Technology Teams for Fast Flow
Principles of Package Design: Creating Reusable Software Components
A Philosophy of Software Design
Designing Event-Driven Systems
Microservices for everyone
Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F#
Domain-Driven Design Distilled
Designing Data-Intensive Applications
Building Microservices: Designing Fine-Grained Systems
Implementing Domain-Driven Design