Backend engineer in Tokyo. I mostly write Gleam these days, plus some Erlang and Elixir. If the BEAM doesn't fit the job, I use Rust or Go.
I like trying new languages, runtimes and tools, even ones I probably don't need. I learn more by building something small than by reading about it. Most of that stays as experiments; the projects below are the ones I kept working on.
Gleam
| nori | OpenAPI codegen. Generates types, routes, clients, middleware and React Query/SWR hooks |
| nori_asyncapi | AsyncAPI 3.x codegen. Generates a typed TypeScript client and Gleam server handlers |
| mochi | GraphQL server. Extra packages: codegen, transport, relay, upload, studio |
| taffy | YAML 1.2 parser written in pure Gleam 🍬 |
Rust / Go
| ripple | Builds a call graph of your code (19 languages) to show what a change can break, what to look at first in a PR, and how services call each other. Use it as a CLI, an MCP server, or a daemon that reindexes on save |
| aegis-cli | Supply-chain scanner. Works offline, scores packages by reading their AST, blocks installs with known CVEs (OSV), and outputs SBOMs. Parses 24 lockfile formats across 15 ecosystems |
| sendup | Puts a static HTML page on your own subdomain in about a second, on Cloudflare's free tier |
| apm | Plugin manager for AI agent tools, with a lockfile so installs are reproducible |
Neovim
| aegis.nvim | Checks the exact plugin commit with aegis before it gets cloned, updated, built or loaded |
| pakku.nvim | Plugin manager built on vim.pack. Feels like lazy.nvim, scans plugins for supply-chain issues, and warns when a repo was force-pushed |





