Technical investigations and design decisions, from short notes to long write-ups — kept in one place rather than split by length. Most were first published on Qiita or my blog, and each page links back to the original.
An overview of prefill and decode, the two phases of ordinary LLM inference, and why one tends to be bottlenecked by compute while the other tends to be bottlenecked by memory reads — prompted by sessions at KubeCon + CloudNativeCon Japan 2026.
Notes on COAZ-MCP, the working group draft that maps MCP messages onto AuthZEN decision requests — the problem it tries to solve, how default and declared mappings work, and where it stands today.
Notes on AuthZEN, the authorisation standard I first came across at KubeCon + CloudNativeCon Japan 2026 — the problem it tries to solve, how it relates to OIDC, and where it stands today.
Hiding it with navigationBarBackButtonHidden also costs you the swipe-back gesture and the long-press stack. Adjusting UINavigationBar's appearance is the safer route.
How to satisfy both of the things a chat screen is expected to do in SwiftUI — the newest item stacking at the bottom, and items sitting at the top when there are only a few.
How to persist a GraphQL client's cache with HiveStore, and how to avoid the mess on the Riverpod side that comes from its initialisation being asynchronous.
Keep one provider whose value changes on logout, have every other provider watch it during initialisation, and forgetting to clear something stops being possible.
Using auto_route's AutoRouteGuard to check the authentication state as navigation happens and send unauthenticated users to the sign-in screen. Covers the case where you inject with riverpod.
Every GraphQL request is a POST to the same URL, so Sentry cannot tell them apart. How apollo-link-sentry fixes that, and what to be careful about in how much it reports.
Sorting GET, POST, PUT, PATCH, DELETE and HEAD by what they do to a resource — and pinning down the difference between the three that are easy to confuse.
Separating the value of unit tests into three effects — regression protection, documentation, and pressure on internal structure — and asking how much to write in practice.
When a system font is set on a UITextView and similar views, it can switch to Times New Roman at runtime. Setting the UIFont explicitly in code works around it.
Review comments carry no tone, so readers cannot tell a blocker from an aside. Labels fix that — but only if you also make them visible and cheap to add.