Blog
Long-form notes. For quick snippets and gotchas, see notes.
- #ai
- #astro
- #chrome-extension
- #elasticsearch
- #figma
- #java
- #jira
- #manifest-v3
- #mcp
- #meta
- #mybatis
- #retrospective
- #spring-boot
- #tooling
-
Bridging Figma and Jira from a Chrome extension: what Manifest V3 makes hard
QA Annotator picks DOM elements, resolves the nearest Figma frame, and files Jira issues — all from a Chrome extension. The interesting parts are the ones MV3 fights you on.
-
What I got wrong in my first three MCP servers
Six MCP servers later, I look back at the design mistakes I made early on — REST-mirroring, bad tool descriptions, context bombs — and what I do differently now.
-
Why I stopped fighting MyBatis and started liking it
Notes from a year on a hotel system running Spring Boot + MyBatis + Elasticsearch. The XML mapper aesthetic is unfashionable; the trade-offs are real.
-
Hello from the new site
I retired a chat-UI demo and replaced it with a proper portfolio + blog. Here's what changed and why.
-
Why I build MCP servers
Model Context Protocol turns LLMs from chat partners into capable agents. Here's what I've learned shipping a half-dozen of them.