
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!

𝕏 @kentcdodds
Principles-Based Programming
By Kent C. Dodds
Principles-Based Programming
The power of principles in web development decision-making
- 269