The Architect's Compass Latest Article

The Architect's Compass

October 8, 2025

Understanding the core conflict between speed and scale is the architect's first challenge. This post explores how to translate business pressures into concrete drivers and navigate critical trade-offs.

Featured Series

Modular by Design: Crafting Evolvable Architectures

Modular by Design: Crafting Evolvable Architectures

A series on the principles and practices of building modular, maintainable, and adaptable software …

5 posts

Architecture: From Patterns to Practice

Architecture: From Patterns to Practice

A comprehensive series exploring the journey of a software architect, from understanding core …

1 posts


Posts

why-is-ai-code-suddenly-hard-to-debug-1.jpg

Why Is AI Code Suddenly “Hard to Debug”?

August 19, 2025

Debugging is easy when someone carries the mental model. With AI, nobody does.

agile-waterfall-interview-meme.jpg

Agile in Theory, Waterfall in Interviews

August 11, 2025

Why our system design interviews don’t reflect how real systems are built and what we should test …

wait-for-the-abstraction-to-earn-1.jpg

Wait for the Abstraction to Earn Its Place

July 29, 2025

Duplication isn’t the enemy. Premature abstraction is.

teaching-the-ai-to-code-and-accidentally-1.jpg

Teaching the AI to Code (and Accidentally Becoming Better Engineers)

July 24, 2025

The best practices we used to skip are suddenly back, not for us, but for the AI

the-real-bottleneck-isnt-code-1.jpg

The Real Bottleneck Isn’t Code

July 23, 2025

If you're not building the same thing in your minds, you'll spend even more time fixing what …

driving-ai-code-why-test-driven-development-1.jpeg

Driving AI Code: Why Test-Driven Development is Essential in the LLM Era

June 20, 2025

Exploring how Large Language Models (LLMs) are transforming coding and the essential role of …

think-entity-not-procedures-1.png

Think Entities, Not Procedures

May 24, 2024

Contrasting RPCs with ReST

looking-back-at-rpcs-1.jpeg

Looking Back At RPCs

April 17, 2024

A Programming Abstraction for Distributed Systems

modularity-through-the-ages-1.jpg

Modularity Through The Ages

February 29, 2024

A look at the history of software architecture, from RPCs to microservices, and the timeless …

yagni-debt-and-adaptability-1.jpg

YAGNI, Debt, and Adaptability

December 22, 2023

Building for Tomorrow without Sacrificing Today,

on-consulting-1.png

On Consulting

December 11, 2023

polymorphism-dynamic-dispatch-and-visitor-1.jpeg

Polymorphism, Dynamic Dispatch, and Visitor

December 4, 2023

Exploring polymorphism, dynamic dispatch, and the Visitor pattern in object-oriented programming, …

good-coupling-bad-coupling-and-cohesion-1.jpg

Good Coupling, Bad Coupling, and Cohesion

November 18, 2023

Spaghetti Pasta is Good, Spaghetti Code is Bad!

venturing-beyond-the-gof-1.jpg

Venturing Beyond the GoF

November 16, 2023

Unveiling Design Patterns for Modern Software Development

modularity.jpg

Achieving Modularity

October 12, 2023

Stop just talking about modularity and start achieving it. This guide introduces effective technique …

solid-fp-1.png

SOLID fp

September 9, 2023

Exploring how the SOLID principles, often discussed in OOP, apply to Functional Programming, …

tdd-what-most-articles-miss-1.jpg

TDD: What Most Articles Miss

May 21, 2023

Uncovering the Design Discipline You Didn't Know You Were Missing

design-principles-and-design-patterns-1.png

Design Principles and Design Patterns

April 6, 2023

Design principles are high-level guidelines for designing software, while design patterns are …

why-you-should-blog-too-1.jpg

Why YOU Should Blog Too!

March 30, 2023

A post about the benefits of blogging for personal and professional growth.

bad-code-is-not-tech-debt-1.jpg

Bad Code Is Not Tech Debt

December 28, 2022

struggles-of-a-newcomer-to-fp-1.jpg

Struggles Of A Newcomer To FP

June 9, 2022

One of the challenges that I faced earlier on with FP is coming up with non-imperative solutions...

higher-ranked-types-1.jpg

Monomorphism, Polymorphism, and Higher Ranked Types.

January 24, 2019

An explanation of Monomorphism, Polymorphism, and Higher Ranked Types in Haskell.

expressiveness-1.jpg

Expressiveness

November 8, 2018

Exploring the concept of expressiveness in programming languages, comparing Haskell, Java, and …

taming-complexity-a-guide-to-imperative-1.jpg

Taming Complexity: A Guide to Imperative, Object-Oriented, and Functional Programming

September 15, 2017

In the realm of software development, complexity is the root cause of majority of problems. This …

gadts-to-eliminate-runtime-checks-1.jpg

GADTs To Eliminate Runtime Checks

October 14, 2016

Generalised Algebraic Data Types (GADTs) generalises ordinary Algebraic Data Types(ADTs) by …

decisions-1.jpg

Decisions

August 15, 2016

We all make decisions. We should make decisions to be happy.