Back to Blog
RantDecember 1, 20254 min read

A Rant: Stop Abstracting Before You Have Two Use Cases

Hot take on premature abstraction, over-engineered folder structures, and why YAGNI is the most underrated principle in junior-to-mid engineering culture.

Clean CodeArchitectureOpinion

I've reviewed PRs with a `useGenericEntityFactory` hook wrapping a `createRepositoryAdapter` that serves exactly one entity. That's not architecture — that's procrastination dressed as craftsmanship.

DRY Doesn't Mean 'Never Repeat'

Duplication is cheaper than the wrong abstraction. Wait until the second or third real use case, then extract. Your future self will thank you for interfaces that match reality instead of imagination.

KISS Wins Interviews and Production

Recruiters at companies like Microsoft aren't impressed by clever indirection. They want engineers who ship reliable systems, communicate trade-offs clearly, and leave codebases easier to change than they found them.

  • Write the straightforward version first.
  • Measure pain before refactoring.
  • Name things for readers, not for your ego.
  • Delete code aggressively when requirements change.