Principles

Core principles that guide how I think, work, and build.

Simplicity is Harder Than Complexity

Complex systems are easy to build. Simple systems that work are hard. I optimize for simplicity, clarity, and explicitness—even when it requires more thought upfront.

Understand the Constraints

Every design choice is made under constraints: hardware, time, team size, business requirements. Great design comes from deeply understanding what constraints you're optimizing for.

Trade-Offs are Fundamental

There are no perfect solutions. Every choice trades something away. The art is being explicit about what you're trading and whether it's the right trade.

Clarity Over Cleverness

Code that's clever but hard to understand creates technical debt. Aim for code that's obvious to someone reading it months later, even if you have to write more of it.

Permanence Matters

I build things meant to last. Documentation, thought, and decisions are recorded for the future. What I publish is permanent—I take that seriously.

Depth Over Breadth

Deep expertise compounds. I'd rather be genuinely great at a few things than mediocre at many. This means saying no to breadth.

First Principles Thinking

Rather than follow convention, understand the fundamental principles. Question why things are the way they are before accepting them.