- 500 Lines or Less
- A Philosophy of Software Design
- Beautiful Code
- Beautiful Data
- Beautiful Security
- Building Microservices
- Building Secure & Reliable Systems - Best Practices for Designing, Implementing, and Maintaining Systems
- Clean Architecture - A Craftsman’s Guide to Software Structure and Design
- Code - The Hidden Language of Computer Hardware and Software
- Code Complete
- Designing Data-Intensive Applications - The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
- Design Patterns - Elements of Reusable Object-Oriented Software
- Designing Event-Driven Systems
- Implementing Domain-Driven Design
- Refactoring
- The Architecture of Open Source Applications
- The Design of Everyday Things
- The Elements of Computing Systems - Building a Modern Computer from First Principles (Nand to Tetris)
- The Performance of Open Source Applications
- Visualizing Data
- Working Effectively with Legacy Code
- Apprenticeship Patterns - Guidance for the Aspiring Software Craftsman
- Cracking the Coding Interview
- HackerRank
- LeetCode
- Software Engineer interviews: Everything you need to prepare
- System Design Interview – An insider's guide
- Tech Interview Handbook
- Calculus
- Concepts, Techniques, and Models of Computer Programming
- Introduction to Algorithms
- Structure and Interpretation of Computer
- The Algorithm Design Manual
- The Art of Computer Programming