Backend


Designing Data-Intensive Applications
Building Microservices: Designing Fine-Grained Systems
Node.js Design Patterns: Master a series of patterns and techniques to create modular, scalable, and efficient applications
Understanding Distributed Systems: What every developer should know about large distributed applications
Spring Start Here: Learn what you need and learn it well
Effective Java
Fundamentals of Software Architecture: An Engineering Approach
Head First Design Patterns
Software Architecture: The Hard Parts: Modern Trade-Off Analyses for Distributed Architectures
A Philosophy of Software Design
The Mythical Man-Month: Essays on Software Engineering
The Pragmatic Programmer: From Journeyman to Master
Structure and Interpretation of Computer Programs
Working Effectively with Legacy Code
Computer Systems: A Programmer's Perspective