SOLID Principles Without the Strawmen
What each SOLID principle actually asks of your code, shown with realistic examples instead of Animal-extends-Dog toys.
Tag
9 articles
What each SOLID principle actually asks of your code, shown with realistic examples instead of Animal-extends-Dog toys.
Monorepos and polyrepos both work at scale — the real decision is which trade-offs your organization is already equipped to absorb.
Release flags, experiment flags, and ops flags need different lifecycles — a flag system without a removal process always accumulates debt.
Technical debt taken on deliberately with a repayment plan gets paid back; debt that accumulates silently almost never does.
How Spring Modulith turns package structure into an enforced architectural boundary, catching the coupling that code review alone tends to miss.
A name is a promise about behavior, cost, and side effects — bad names mislead quietly, and that cost compounds across every reader.
Using Spring's application event system to decouple side effects from core business logic, and the transactional pitfalls that come with it.
CQRS doesn't require event sourcing or a second database — a minimal, practical version of the pattern and when to reach for more.
Why storing immutable facts instead of current state changes how you build, replay, and evolve systems, and when it isn't worth the cost.