AI engineer
who ships.
I build agent systems and the TypeScript and Python services that keep them useful after the demo. Currently shipping atShopos AI.
Open-source tools built to solve real annoyances. Stars are useful; the stronger proof is that the software is still doing the job.
Work, not claims.
google-photos-backup
Pull a full Google Photos library down with Playwright. No official bulk export that didn't suck.
helium-drm-fixer
CLI that puts Widevine back into the Helium browser so Netflix and friends work.
astro-takumi
OG image generation for Astro. This site runs on it.
sumie
Manga reader for iOS. Built with NativePHP Mobile because I wanted PHP on a phone.
The stack changes. The habit stays: get useful things into production.
Built across the stack.
I care about the whole path from an idea to a boring, reliable deploy. That usually means product decisions, backend plumbing, frontend details, and the odd infrastructure fire in the same week.
AI engineer at Shopos AI, working on agents, LLM APIs, and the services behind them.
A decade of full-stack web work: PHP and Laravel first, then Node, React, databases, and AWS.
Open source when a problem keeps itching; writing when the solution is worth explaining twice.
Have a hard problem?
Agents, tooling, TypeScript, or something adjacent. Email is the best way to reach me.
[email protected]Field notes.
Short write-ups from the workbench: agent setups, TypeScript edge cases, and fixes I would rather not rediscover.
Run Claude Code Through a GPT Proxy with claudex
How I Reduced Codex Token Usage With Two Config Changes
Let Codex Subagents Use Different Models
A Tale of Two tsconfigs: Taming a Monorepo-Style Vercel Project
Prefer the raw feed? Every post is available as Markdown for people and agents.
Read Markdown ↗