Frontend engineering

Interfaces get hard when the state behind them is hard. A balance that is already stale, an auction closing while you type, a live wallet session inside a virtual world: the screen has to be honest about all of it.

React, Next.js, TypeScript, TanStack Query, and Tailwind are how it gets built. Deciding what the interface must tell the truth about, and when, is the part that takes judgment.

Trading and auction interfaces

At Opyn the Next.js trading interface uses React Server Components over Ponder-indexed options data so Arbitrum behavior stays visible. At Bitlauncher the Gnosis auction bidding interface uses wagmi balance subscriptions and Supabase realtime updates.

Immersive and interactive products

At ZTX signing sat inside the WebGL world so the UI showed what the session was about to commit to. At AMC the YEAH! interactive player ran trivia, interviews, and quizzes inside the film itself. Curated titles carried more than 400 interactive elements each.

Data-dense interfaces

Block producer scores only help if you can compare them. For EOS Rate I built a radial comparison interface on GraphQL and onchain ratings that keeps those scores in one view.

Writing about frontend systems

See the work

Explore the project portfolio for implementation details, systems, and technology.