Frontend engineer

I build web interfaces, and write about the parts worth remembering.

Mostly TypeScript — the language, the browser, and the small decisions that decide whether an interface holds up over time.

TypeScriptReactNext.jsAstroTailwind CSS
Available for select freelance work Work with me →

Interactive 3D wireframe figure showcasing latest blog posts

Latest post

click to explore

Writing

All essays →
/ 13 min read

I Recommended Skills. Then I Measured Them.

Two posts ago I told you to move CLAUDE.md into skills, because skills only load when you need them. Then I measured mine across 84 headless agent runs: 7,778 tokens of index before I type a word, a retrieval turn that costs more than the file it replaced, and 28 out of 28 unprompted invocations that refuse to reproduce the eval everyone is quoting.

Projects

All projects →
WeSendit Live

Secure Swiss file transfer and decentralized Web3 storage platform. The world's first gateway to decentralized storage networks — serving 3.6M+ active users across 180+ countries. Features encrypted file transfer, Web3 storage integration via Storj, and token-based reward system.

Personal Blog Live

Personal blog built from scratch with Astro, Tailwind CSS 4, and Canvas API. Features a 3D wireframe character, dark/light themes, editorial typography, and perfect Lighthouse scores.

ts-safe-result Live

A tiny, type-safe Result<Value, Error> type for TypeScript. Handle errors as values, not exceptions. Zero dependencies, under 1KB, fully tree-shakable. Features ok/err constructors, map, flatMap, match, tap, tryCatch, tryAsync, and more.

ts-safe-enum Live

A tiny, type-safe alternative to TypeScript enums. Built on plain objects with full inference, type guards, validation, and reverse lookup. No 'as const' needed, no runtime surprises. 536 bytes.

Work with me

I take on a few freelance projects a year — the kind where the frontend is the hard part.

What I do & how to reach me →