Notes

Thoughts on design, development, and building better software. Short essays on the principles and practices that guide my work.

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.