The Blog
I write about the stuff I run into building and running platforms end to end - backend architecture, data pipelines, cloud, and the odd bit of AI on top. No fluff, just what actually worked.

The moment a class builds its own collaborators, it quietly turns untestable and rigid. Dependency injection is the small habit that fixes both.

A float can hold any number, which is exactly the problem. Primitive obsession is why the same validation keeps reappearing, and value objects are the fix.

The Single Responsibility Principle is the most misread rule in SOLID: it was never about doing one thing, but about having one clear reason to change.

A pure function returns the same output for the same input and touches nothing else. That single property is what makes code predictable and trivial to test.

Sometimes deciding which object to create is a job in itself. The Factory pattern gives that decision one home so the rest of your code stays simple.

A growing if/else chain that switches on a type is a design pattern in disguise. Here's how the Strategy pattern turns it into small, swappable pieces.

Inheritance looks tidy until the hierarchy fights you. Here's the concrete point where 'is-a' breaks and 'has-a' scales, shown with real code.
Every post, in one place.