The Pitch
Software Engineer at Citadel Securities. I build polished, high-performing user experiences — the kind of work where UX taste, frontend architecture, product judgment, and ownership all have to show up at once.
Before that I was the founding frontend engineer at Agora, where I owned early product and marketing surfaces for stablecoin issuance, swap, launch, and GTM workflows. Earlier I led frontend at Reach Financial and spent 8 years scaling the web for InVisionApp.
Dad of two, stuck in Tampa (ex-London), and once designed the graphics that wrapped NASA rockets.
When will then be now?
Soon.
Octane compiles React's programming model ahead of time. No virtual DOM. Plain .tsx still works. .tsrx is the richer dialect.
TSRX (TypeScript Render Extensions) is a TypeScript language extension for declarative UI. Setup, JSX-shaped structure, template control flow (@if, @for, @switch, @try), and scoped styles live in one .tsrx file, then compile to a runtime: Octane, React, Solid, Vue, and others. Dominic Gannaway (trueadm) created it. It's in active beta. Octane is a first-class target; my binding and consumer-type work is how a lot of that language actually lands.
What I've been landing in the repo: exact bindings for react-popper and SWR, visx published-source typing for consumer tsrx-tsc, a radix React parity harness, and stricter TSRX source / packed binding consumer checks. Bindings and code fixes have been on my own dime.
Merchandising
Moichendising! Moichendising! Where the real money from the website is made.