About
The journey
How I think
What I value
- Sharp type boundaries over defensive runtime checks
- Reading the spec before writing the line
- Names that survive a year, not a sprint
- Decisions named explicitly, alternatives named explicitly
- Performance as a perception problem, not a benchmark problem
Principles
Subtraction is design
What you don't ship matters more than what you do.
Type-safe end to end
True at the database, the API, the component. A bug class removed.
Performance is perceptual
LCP, CLS, INP. The metrics that map to how an interface feels.
Accessibility is layout
Reading order, focus, contrast, motion. Decisions made at the start.
Honest scope, exact decisions
Name your slice. Name the alternative you rejected.
What's next