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.
- Evolving Software: SOLID principles as a continuumUnderstand how SOLID principles work all at once to support each other, and their role as evolutionary guardrails for software systems.
- Building robust distributed systemsDistributed systems give us tremendous scalability, but we need to build them right to reap the full benefits of this complicated architecture
- On building scalable systemsA 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 sideMuch 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 FeatureFailures 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 ActionsAction is necessary, but not sufficient for mastery. ‘Mindful’ action is the key. Conscious practice builds subconscious competence.
- The pentagon of entity modelsUnderstanding a common pattern of entity models evolve, and why the process works that way.
- The Mechanics of Software EvolutionHow 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 flawThe 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 uselessExtreme 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