Full-stack product engineering
My full-stack work tends to pair a visible client with the system that makes it real: a mobile assistant and the admin behind it, an exchange and its matching engine, a banking app and the partner integrations it depends on.
The decisions that matter sit on the boundaries between them, where I choose what becomes a service, what stays in the client, and what nobody downstream should have to think about twice.
AI products across mobile, web, and data
LegalAgent runs two clients against one system: an Expo assistant for attorneys and a TanStack Start admin where the team manages Microsoft SSO access, system prompts, and the document categories retrieval draws from. I built both sides of that boundary.
Token flows across contracts, data, and interface
At Bitlauncher the token bridge was the full-stack problem: swapping USDT, USDC, and BITUSD into the token used for bidding touches contracts, indexed events, wallet balances, and the bidding interface at once.
Regulated products and exchange infrastructure
At Wink the React Native app sat on a serverless AWS backend I also built, where partner-bank APIs moved deposits, transfers, and account data. At Bitcash the exchange UI sat on a React, Node.js, PostgreSQL, Hasura, and Google Cloud stack I architected, including the matching engine and realtime chat.
Writing about product systems
See the work
Explore the project portfolio for implementation details, systems, and technology.
The employment record behind this work is the full-stack CV.



