Below are a list of first principles that provide a guiding framework for development decisions. They are eclectic and random at times. It is a living list that is revisited often.
Principles
- In general, it will always be easier to affirm the positive than negate the negative.
- To be a team of 1: It’s about testing and automation and using the constraints to your creative advantage.
- Recursion rules the day, until your stack overflows.
- Before and After Hooks
- Timestamps: use
_at
for booleans - Reuse established concepts or schemas from anywhere in life
- Fuzzy find is the way to go for everything
- The less dependencies the better
- Every tool comes with a maintenance overhead
- Understanding progress and growth: people can’t go from Excel to Freshbooks they need understandable steps
- It is easier to modify an existing working example than to create a new one
Cool concepts that already exist
- Regex Pattern Matching
- Status Codes
- Scheduling: Cron job
- Permissions: File system
- Permissions: For firewall: allow deny
- Organization: Types and Tags
- Testing: CI/CD
- Content-based IDs (SHAs in Git)
- CSS selectors
- Points on a 2D plain x.y (line, col) (x, y)