I write about software architecture and programming, evangelize platform architecture and methods for bringing agililty to organizations and teams. I also do the occasional book review and summary of interesting articles.
Browse the entire archive for older articles.
Latest articles
- Evolving Software: SOLID principles as a continuum
Understand how SOLID principles work all at once to support each other, and their role as evolutionary guardrails for software systems. - Building robust distributed systems
Distributed systems give us tremendous scalability, but we need to build them right to reap the full benefits of this complicated architecture - On building scalable systems
A deep dive into software scalability, strategies for building a scalable system, and adopting distributed system design as the key to scalability - Mini Essay #4 – The other side
Much of what we do at work can be seen from two sides. To really learn how to do your job, find a way to get to the other side. - Mini Essay #3 – Say “no”
Hope is not a strategy. The only way to do effective short term planning is to say “no” brutally. - Architecture Patterns: Caching (Part-2)
Part 2 of the series covers some nuances in using the caching architecture pattern and offers some tips in scaling the cache infrastructure for larger loads. - Architecture Patterns: Caching (Part-1)
The first of an introduction to the use of caching in system design and some nuances on how it works in real-world architectures - Mini Essay #2 – Failure is a Feature
Failures in distributed systems are not bugs, they are features. Don’t worry about preventing errors, focus on isolating them. Focus on speed of detection and fixing. - Mini Essay #1: Mindful Actions
Action is necessary, but not sufficient for mastery. ‘Mindful’ action is the key. Conscious practice builds subconscious competence. - The pentagon of entity models
Understanding a common pattern of entity models evolve, and why the process works that way. - The Mechanics of Software Evolution
How to adopt an evolutionary mindset and use feature requests as a breeding ground for the next generation of the system’s architecture - The crypto-web’s fatal flaw
The financialization inherent to the crypto-web’s architecture is the reason it is ticking, and the reason we shouldn’t let it tick. - The Marketplace Scam (sellers beware!)
“Every great magic trick consists of three parts or acts. The first part is called “The Pledge”. The magician shows you something ordinary: a deck of cards, a bird, or a man. He shows you … - Guidelines for writing useful librariesGeneral guidelines for writing useful libraries
- Competitive programming is useless
Extreme achievements in competitive programming among college students is useless as a hiring signal
If you liked this, subscribe to my weekly newsletter It Depends to read about software engineering and technical leadership