- The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business
- Microservices Patterns
- Release It!
- Working Effectively with Legacy Code
- Deep Work: Rules for Focused Success in a Distracted World
- Essentialism: The Disciplined Pursuit of Less
- Finish: Give Yourself the Gift of Done
- Getting Things Done: The Art of Stress-Free Productivity
- Starting Strength
- Quiet: The Power of Introverts in a World That Can’t Stop Talking
- The Five Dysfunctions of a Team: A Leadership Fable
- Getting to Yes
- Good to Great
- How to Win Friends & Influence People
- Radical Candor
- Turn the Ship Around!: A True Story of Turning Followers into Leaders
- Who Moved My Cheese
- Awesome Falsehood: A curated list of falsehoods programmers believe in
- Be Kind
- Best practices for REST API design
- Cargo Cult Software Engineering
- Design a DDD-oriented microservice
- The Fallacy Of ReUse
- The Guerrilla Guide to Interviewing (version 3.0)
- 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
- How to Write a Git Commit Message
- Microservices: a definition of this new architectural term
- Built 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
- Testing Strategies in a Microservice Architecture
- Why you should follow the robustness principle in your APIs
Martin Fowler has a great take on the abbreviation S.A.F.E. in this video. It’s a terrible project management system to work under.
This is one of my favorite talks on refactoring. It changed the way I approach and talk about the refactoring process.
Workflows of Refactoring:
- Litter-Pickup Refactoring
- Comprehension Refactoring
- Preparatory Refactoring
- Planned Refactoring
- Long-Term Refactoring
> Why refactor in the first place, isn’t it wasteful work?