// ENGINEER OF RECORD
Interface architecture · multi-agent systems · product judgement — solo, end to end.
AI-native engineering with human judgement. Proof first, claims second.
Live builds and systems you can open
Six autonomous LLM agents play continuous social-deduction games in a 3D UI.
Challenge: Sync agent decisions, game state, and 3D scene while remaining inspectable.
Built with: 3D UI · multi-agent orchestration · state machine · multi-model routing
Solo-built AI CV generation SaaS with custom model routing and privacy-first design.
Challenge: Route models, score ATS fitness, and ship a full product loop without a team.
Built with: React · TypeScript · Node.js · model routing · ATS scoring
Published satire / narrative piece under ShawTim Studio.
Format: Creative signal — not engineering proof.
Built with: Narrative design · AI-assisted creative production
Capabilities, backed by evidence
Multi-agent orchestration, custom model routing, and end-to-end product loops shipped solo — frontend, backend, and AI wiring held together with human judgement.
Evidence
Component & design systems, async state modelling, real-time 3D scene sync, responsive UI, accessibility, and performance budgets that survive production.
Evidence
Wallet onboarding, transaction flows, lending & DEX products, real-time portfolio state, and mobile-first crypto UX across EVM, Starknet, and Solana.
Evidence
Coming: public tx-flow playground
Where AI speeds up, and where I intervene
AI generates most of the code. The work that matters is catching what it gets wrong — and knowing why. A real excerpt from the Werewolf build:
// AGENT GENERATED — race condition
async function runNightCycle(agents) { await Promise.all(agents.map(a => act(a))); // resolveAll reads state mid-flight resolveDeaths(gameState); // ← state not yet settled }
// HUMAN INTERVENTION — serialise critical section
async function runNightCycle(agents) { // agents must commit before resolution reads state for (const a of agents) { await act(a); // deterministic order, inspectable per-step } resolveDeaths(gameState); // ← state fully settled }
Why: Promise.all let agents race on shared game state. The agent suggested it for "performance" — but social-deduction requires a strict night-order so votes are auditable. Parallelism here breaks replayability and trust in the sim.
Behind the systems
I'm ShawTim — a senior frontend / full-stack engineer who ships alone and ships for real. Multi-agent AI sims, SaaS products, Web3 flows across EVM, Starknet, and Solana: designed, built, and operated end-to-end.
AI writes most of the code with me. The architecture, the trade-offs, and the final call stay human — that's the job.
Experience, compressed
NOW
Multi-agent sims and solo-shipped SaaS — Endless Werewolf, ZenCV.ai. Design, build, operate, end to end.
PREVIOUSLY
Lending & DEX products, wallet onboarding, real-time portfolio state across EVM, Starknet, and Solana.
ALWAYS
Writing, satire, and experiments in AI-assisted creative production.
Have a system that needs shipping?
Open to senior frontend / full-stack / AI-product work and interesting collaborations.