vishal patel
← Knowledge hub

Design Principles

The rules of thumb behind good boundaries, testable code and evolvable systems.

Design PrinciplesApplied in production

SOLID Principles

Five object-oriented design principles that keep code open to change — single responsibility, open/closed, Liskov substitution, interface segregation, dependency inversion.

Foundation4 sources
Design PrinciplesApplied in production

KISS, DRY, YAGNI & Rule of Three

The pragmatic trio — keep it simple, don't repeat knowledge, don't build what you don't need yet — and when each one actually applies.

Foundation4 sources
Design PrinciplesApplied in production

Coupling, Cohesion & Separation of Concerns

High cohesion inside a module, loose coupling between modules — the single most important property of a maintainable architecture.

Foundation4 sources
Design PrinciplesApplied in production

The Twelve-Factor App

Twelve rules for building cloud-native services that are portable, scalable and deployable anywhere — config in env, stateless processes, logs as streams.

Foundation3 sources
Design PrinciplesApplied in production

Idempotency

Doing an operation twice has the same effect as doing it once. The foundation of safe retries, at-least-once messaging and reliable APIs.

Intermediate4 sources
Design PrinciplesApplied in production

API Evolution & Backward Compatibility

Change APIs without breaking clients — additive changes, tolerant readers, versioning strategy and explicit compatibility boundaries.

Intermediate4 sources
Design PrinciplesApplied in production

Architecture Decision Records (ADRs) & Trade-off Thinking

Capture each significant decision — context, options, decision, consequences — so the "why" survives people leaving. Plus how to reason about trade-offs.

Foundation4 sources