Writing on software design, authorization, and the journey of learning Japanese.

All of my long-form thoughts on programming, leadership, product design, and more, collected in chronological order.

Building a Japanese passage block for the blog

How I built an interactive, code-block-style component for rendering Japanese passages with furigana, word-level popovers, and sentence translations—and what I’d do differently.

JapaneseMDXReactfuriganablogcomponentaccessibility

Why fine-grained authorization matters in the age of AI

AI and agents change the game: coarse-grained "can this user call the API?" is no longer enough. Here’s what’s different—and what’s at stake.

fine-grained authorizationAIagentsauthorizationAPI securityidentityaccess control