I've been a Rails developer for about as long as Rails has been a thing people did for a living — and a remote one for almost as long. Most of what I do is the unglamorous, careful work of turning business rules into systems that keep working while they change.
I started writing code professionally in 2005, building projects for Japanese customers in VBS, C#, Java, and HTML. In 2008 I went all-in on Ruby on Rails at Idapted, leading a small team on a 1-on-1 English-learning platform. Since 2011 I've worked remotely — first at Intridea in the D.C. area on more than ten client projects, then a long string of contracts including Spire Health and imToken, and a multi-year run owning the codebase for a Stripe-powered swimming-lessons platform.
Since January 2025 I've made key contributions to Adwave's production AI workflow — a Rails platform for video ad generation and campaign management, where AI tasks, background jobs, external services, and deterministic media generation all have to cooperate. My part is the product system around the model: agentic editing, structured state, observability, testing, and the browser-based QA that keeps it honest. It's a client product, and the interesting work is what it takes to make something like that dependable.
Alongside it I've worked independently with international clients since 2020, on business-critical workflows rather than isolated websites: a Stripe-powered platform for swimming products and lessons with instructor availability and scheduling rules, a configurable CMS combining scheduling and payments for paid online services, room and meeting operations across a large building, a specialised vendor marketplace, a multi-party private-investment platform, and a publishing workflow spanning Google Docs, Medium, HubSpot, and WordPress.
That same practice runs my own product work, chiefly HexagramCast — an English-first, source-backed I Ching reflection tool with web, API, and browser-extension surfaces, built on traceable casting and verifiable computation, with a deliberate non-fortune-telling stance. It's where the whole path stays visible: framing the problem, building it, shipping it, charging for it, and running it. Around it I keep exploring niche SaaS and public-data products as a practical way to find problems worth solving.
Outside work I read, walk, and translate Buddhist sutras — chapters of the Diamond Sutra and the Heart Sutra — for my own practice. A product engineer by day; a life-long learner by night.