Software Development resources that I recommend reading. These helped me to grow as a developer and I share them with those I mentor.
For resources on the Software Development process see Reading List: Process
For resources on Leadership, Personal Development, and Business see Reading List: Leadership
Books
- Microservices Patterns
- Release It!
- REST in Practice
- Secure by Design
- Working Effectively with Legacy Code
Blog Posts
- Awesome Falsehood: A curated list of falsehoods programmers believe in
- Cargo Cult Software Engineering
- The Fallacy Of ReUse
- Microservices: a definition of this new architectural termBuilt around business capabilities and independently deployable
- Conway’s Law: Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure.
- Services organized around business capability
- A team should own a product over its full lifetime “you build, you run it”.
- Applications built from microservices aim to be as decoupled and as cohesive as possible
- Applications need to be designed so that they can tolerate the failure of services
- On Being A Senior Engineer
- Programmer Competency Matrix
- Testing Strategies in a Microservice Architecture
- Understanding write-through, write-around and write-back caching (with Python)
- Principles
- Java
Design
- Think you understand the Single Responsibility Principle?
- Cursor Pagination
- Why you should follow the robustness principle in your APIs
- Best practices for REST API design
- Design a DDD-oriented microservice
Code Review
- How to Write a Git Commit Message
- How to Make Your Code Reviewer Fall in Love with You
- Review your own code first
- Separate functional and non-functional changes
- Break up large changelists
Videos
This is one of my favorite talks on refactoring. It changed the way I approach and talk about the refactoring process.