Principles-Based Programming

Be more intentional and successful with better decisions

Let's wake up

Your brain needs this 🧠

Story time

Endless debates

Frameworks, libraries, tools...

Decision Fatigue

Example Decisions

  • Which database do I use?
  • How much effort do I put into this UX?
  • Which tools should I adopt?
  • Should I remove a feature?

We'll look at these in detail in a bit...

Principles-Based Programming

Your Compass, Not Just the Map

Guiding your decisions, shaping your craft.

  • Foundational beliefs
  • Guides for decisions & collaboration
  • More stable than tech stacks
  • The 'Why' behind the 'What'

What ARE Principles?

What are Principles NOT?

Why Principles Matter: Clarity

A consistent filter for decisions

Navigate the "tyranny of choice"

"Software is built for people, by people"

Impacts: UX, Accessibility, Team Dynamics

Actions: Keyboard nav checks, stop gossip, fix jarring UI

Why Principles Matter: Sustainability

Move effectively long-term

Avoid burnout & tech debt spirals

"Make it work, make it right, make it fast"

Order matters!

Avoids: Optimizing the broken, gold-plating the unnecessary

Why Principles Matter: Collaboration

Common language for the "Why"

Reduce opinion-based arguments

"Tests should resemble users"

Increases reliability

Avoids: Arguing irrelevant details

A couple more examples

"Don't Solve Problems, Eliminate Them"

Look upstream!

Example: React Hooks vs HOCs/Render Props

"Don't confuse simplicity with familiarity"

Stay curious

Build upon the knowledge you already have

"Avoid Hasty Abstractions"

Wrong abstractions are costly

Wait for the pattern!

"Let the code scream at you"

"Know where to make money"

Focus your monetization efforts

Avoid chasing pennies; protect your time & relationships

"Strive for excellence"

"What E'er Thou Art, Act Well Thy Part"
– John Allan

Commit fully and do it well, or don't commit.

"Embrace reality"

Deal with what IS, not what you WISH

Ground your plans in the actual situation

Principles Aren't Dogma

Context matters

Guides, not shackles

Principles Applied:

Epic Stack Decisions

SQLite

  • Challenge: Database Choice (Service vs Embedded)

  • Principles: Problem Elimination, Value Time

  • Outcome: Simpler Dev, Ops, Performance

Client Pref Cookies

  • Challenge: Server needs User Prefs (e.g., Theme) for SSR to avoid Flash.

  • Principles: Software for People, Pragmatism > Purity, Embrace Reality

  • Outcome: No FOUC, better UX (slight reload > jarring flash).

Migrate Remix compiler to Vite

  • Challenge: Build Tool Evolution (Remix moved to Vite).

  • Principles: Adapt Productive Tools, Default to Standards, Keep Learning

  • Outcome: Better DX, Future Alignment, Ecosystem Benefits.

Remove CSRF

  • Challenge: Re-evaluating necessity of CSRF Tokens for form security.

  • Principles: Default to Standards, Do as Little as Possible, Problem Elimination

  • Outcome: Simpler code, relying on modern browser defaults.

Crafting your compass

It's a process

The Power of Intentionality

From reactive coding...

...to intentional, principle-guided development.

Better Software. Better Teams. More Fulfilling Work.

Your First Step

Identify ONE principle that resonates.

(Mine, or one of your own)

This week: How does it apply to a decision or conversation?

Resources

You got this

Thank you!

Principles-Based Programming

By Kent C. Dodds

Principles-Based Programming

The power of principles in web development decision-making

  • 269