Notes
Thoughts on design, development, and building better software. Short essays on the principles and practices that guide my work.
Featured
All Notes
Minimal surface area beats feature sprawl
The best products solve one problem exceptionally well rather than many problems poorly. Every feature is a liability until proven otherwise.
Privacy isn't a feature; it's a constraint you design for
When privacy is an afterthought, it becomes a liability. When it's a constraint, it becomes an advantage that shapes better architecture.
The best styling is the one you can remove later
Maintainable design systems prioritize deletion over addition. CSS should be as disposable as the features it styles.
Why I choose boring technology
Boring technology is predictable, well-documented, and has a large community. Innovation should happen in your product, not your infrastructure.
The false promise of zero-config tools
Zero-config tools promise simplicity but often deliver complexity in disguise. Configuration is communication with your future self.
Building for the 99% use case
Most software fails because it tries to solve every possible edge case. Focus on the common path and make it exceptional.
The cost of context switching
Every abstraction layer adds cognitive overhead. Sometimes the 'simple' solution is actually the most complex to understand.
Why I write CSS from scratch
CSS frameworks solve problems you might not have. Writing CSS from scratch forces you to understand what you're actually building.
The art of saying no to features
Every 'yes' to a new feature is a 'no' to simplicity. The hardest part of product development is deciding what not to build.
Performance is a user experience issue
Slow software is broken software. Performance isn't a technical concern—it's a fundamental aspect of user experience design.
About These Notes
These notes capture ideas and observations from my daily work as a design-engineer. They’re not comprehensive tutorials, but rather focused thoughts on specific problems and approaches.
Each note is intentionally short—usually readable in 2-3 minutes. The goal is to share actionable insights that can be immediately applied to your own projects and thinking.
Topics range from technical implementation details to broader philosophy about building software. All are written from the perspective of someone who cares deeply about craft and user experience.
Stay updated
New notes are published regularly. Follow along for insights on design, development, and building better software.