Exploring Privacy Latest Article

Exploring Privacy

February 2, 2026 · 6 min read

Why encryption isn't just scrambling, why the server must be blind (not just honest), and how to protect data at rest using authenticated encryption.


The Archive

featured-antique-keys.jpg

Cryptographic Identity

January 31, 2026 · 7 min read

Why static keys (like PGP) failed, why device keys (like Signal) aren't enough, and how treating …

library-card-catalog.jpg

Content Addressing

January 30, 2026 · 8 min read

Why the way we link to things on the web is broken, and how addressing content by 'what' it is, …

contract-featured.svg

The Formal Contract

January 25, 2026 · 6 min read

A clean directory structure is just a facade if anyone can import anything. Learn how to use …

blueprint-featured.svg

The Directory is the Diagram

January 10, 2026 · 11 min read

Organizing code by business capability is more than just rearranging directories. It's about using …

Architectural-Quanta.png

A Practical Guide to Architectural Quanta

November 5, 2025 · 12 min read

Explore the Architectural Quantum, the true unit of independent deployment, and uncover how …

architectural-flywheel.png

An Architect's Work is Never Done

October 8, 2025 · 5 min read

Beyond making initial decisions, an architect's true role involves continuously guiding the …

documentation.jpg

Documenting your decision

October 8, 2025 · 5 min read

Learn how to effectively document and communicate architectural decisions using Architectural …

experiment.jpg

The Spike

October 8, 2025 · 4 min read

Explore how architectural spikes bridge the gap between theoretical decisions and real-world …

decision-signpost.jpg

The Decision Engine

October 8, 2025 · 4 min read

Learn how to move from qualitative analysis to a final, justifiable, and data-informed architectural …

toolbox.jpg

The Architect's Toolbox

October 8, 2025 · 5 min read

A practical guide to analyzing Monolithic, Microservices, and Event-Driven architectural styles …

driving.jpg

Deriving Your Real Architectural Drivers

October 8, 2025 · 3 min read

Learn how to translate vague business goals into concrete, measurable architectural drivers using …

compass.jpg

The Architect's Compass

October 8, 2025 · 5 min read

Understanding the core conflict between speed and scale is the architect's first challenge. This …

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

Why Is AI Code Suddenly “Hard to Debug”?

August 19, 2025 · 3 min read

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 · 2 min read

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 · 4 min read

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 · 2 min read

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 · 2 min read

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 · 19 min read

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 · 10 min read

Contrasting RPCs with ReST

looking-back-at-rpcs-1.jpeg

Looking Back At RPCs

April 17, 2024 · 10 min read

A Programming Abstraction for Distributed Systems

modularity-through-the-ages-1.jpg

Modularity Through The Ages

February 29, 2024 · 9 min read

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 · 4 min read

Building for Tomorrow without Sacrificing Today,

on-consulting-1.png

On Consulting

December 11, 2023 · 5 min read

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

Polymorphism, Dynamic Dispatch, and Visitor

December 4, 2023 · 7 min read

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 · 8 min read

Spaghetti Pasta is Good, Spaghetti Code is Bad!

venturing-beyond-the-gof-1.jpg

Beyond the GoF: The Pattern Mindset

November 16, 2023 · 9 min read

Patterns are not a catalog to be memorized. They are a way of seeing the shape of a problem. This …

modularity.jpg

Achieving Modularity

October 12, 2023 · 9 min read

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

solid-fp-1.png

SOLID fp

September 9, 2023 · 4 min read

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 · 7 min read

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 · 8 min read

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 · 4 min read

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 · 10 min read

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

Struggles Of A Newcomer To FP

June 9, 2022 · 6 min read

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 · 4 min read

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

expressiveness-1.jpg

Expressiveness

November 8, 2018 · 4 min read

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

runtime-checks.jpg

Dependent Types To Eliminate Runtime Checks

October 26, 2018 · 6 min read

An exploration of how to leverage dependent types in Haskell to catch errors at compile-time, …

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

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

September 15, 2017 · 4 min read

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 · 4 min read

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

decisions-1.jpg

Decisions

August 15, 2016 · 1 min read

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

analysis.jpg

Performance Analysis In Python

November 2, 2014 · 8 min read