I build backend and infrastructure — mostly Rust and TypeScript, on systems that move money or aren’t allowed to go down. Computer Science student at KUCSC, graduating 2027.
Most of what I’ve built runs in production rather than in a demo — payment services, multi-environment deployments, and the operational tooling around them.
Available for backend, payments and infrastructure work. Reach me at [email protected].
What I work on
Client work, so these are problem classes rather than links. The public projects are below.
Payment & payout systems
Rust services sitting on the money path for several platforms. The hard parts are the unglamorous ones — idempotency, reconciling stuck transactions, deduplicating payment slips, and recovering cleanly when a provider's callback never arrives.
Multi-target production deployments
One branch shipping to several independent production environments, each with its own database and its own configuration. A fix isn't shipped until every target has it — so the tooling has to make that state visible rather than assumed.
Fleet operations & alerting
Health checks across a fleet of hosts reporting into Telegram, plus the automation around deploys, backups, and incident response. Built because paging a human to run a checklist doesn't scale past the third server.
LLM agents in the operations loop
Agents pointed at production rather than a sandbox — deploys, database reads, incident response. The design work is not in what an agent can do but in which actions it is allowed to take, and in being able to show afterwards who authorised each one.
Most of this runs in private repositories under client agreements, so the public contribution graph is a poor guide to it. Happy to walk through any of it in detail.
Things you can look at
Everything here is public and has a link. The work above it does not.

tw-angpao
TrueMoney Angpao voucher redemption for ElysiaJS, published to npm. Typed request/response models, error handling for expired and already-claimed vouchers, and a test suite. Maintained across 20 releases since 2024.
Thai QR & Barcode Toolkit
Free link shortener and code generator built for Thai use — EMVCo PromptPay payloads with CRC-16, 1D barcodes with GS1 check digits, bulk sticker sheets, and printable A5 ceremony signs. Codes are generated in the browser; QR output is verified by decoding it, not by eye.
Digital Storefront
Full-stack shop with wallet, tickets, and admin panel — product catalog, orders, PromptPay checkout, Tiptap-based content editor.
Student Group Savings
Payment collection app for a university student group — PromptPay QR, bank-API slip verification, admin panel with soft-void audit trail. ~200 students in production.
claude-memory-hooks
Two Claude Code hooks giving an agent a long-term memory that stays useful as it grows. No index, no database, no embeddings, no network — and it declines to answer about half the time, which is the part that makes it worth having.
A journey of a thousand miles begins with a single step. I started programming in 2018 with reverse engineering, then moved into full-stack web development and DevSecOps.
These days, I build backends in Rust with Domain-Driven Design and spend a lot of time on the LLM tooling side — writing Claude Code skills, wiring MCP servers, and orchestrating agents around my day-to-day dev and ops loop.