Frontend
Engineer
I build fast, readable, product-driven interfaces, with an auditor's eye for what breaks.

/ About
Five years in engineering, two of them auditing Solidity, now focused on frontend. I care about interaction, reliability, and ownership, and I ship products that are easy to use, easy to read, and easy to maintain.
BASED IN SINGAPORE · EMPLOYMENT PASS HOLDER
/ Experience
Neovate
2024 - PresentTook TetherMax's web + mobile frontend (100K+ users) in-house in 2024, then drove the rebrand and performance overhaul: JS down 85-90%, in-app screens 2-3s → 0.5s. Now leading the frontend team.
HAECHI LABS
2019 - 2021Contract from 2019, full-time from late 2020. 100+ DeFi & ERC-20 audits securing $5B+ in TVL; production Solidity shipped to client spec.
Selected Work
TetherMax
Crypto cashback platform, 100K+ users. Took the web + mobile frontend in-house, and own it end to end.
TongTong
Couples track shared expenses and assets in one place. Web, app, server, DB, all built solo. Live on Google Play.
Discover Singapore
A fog-of-war map over real GPS. Offline tiles, one-polygon fog, noise-hardened dwell detection.
Contract Audit
100+ DeFi & ERC-20 smart contract audits at HAECHI LABS, where I learned to read code by asking how it breaks.
/ Technical Strengths
Performance & Bundle
Image pipelines, dynamic imports, bundle trimming: TetherMax JS down 85-90%. When React is the bottleneck, work moves out of the render loop (refs + rAF).
Data Fetching & Caching
App Router per-route caching + TanStack Query, aggressive where static, exempt where staleness costs users money.
Cross-Platform
React Native + WebView hybrid, ~90% code reuse. Native for interaction, WebView for weekly-changing screens, pre-warmed to <0.5s.
Reliability & Process
CI/CD and code-review standards adopted team-wide. Sentry + Mixpanel observability. Pure cores that unit-test.
Security Habits
Two years auditing Solidity. Untrusted input and "how does this break?" carried into every frontend.
AI-Native Engineering
Agent workflows instrumented, not just used: lifecycle hooks, token-derived identity, and dashboards that make agent state readable. The LLM parses intent; it never designs.
Stack
Lab
Side experiments where I go one layer down: render loops without React, agents wired into a 3D floor, a photo that never leaves the vault.
Desker
Desks around the world, rebuilt as low-poly dioramas on a globe you spin.
Pokoffice
My AI agents, clocking in as Pokémon, in a 3D office that shows what they're working on.
Beer Can
Imported-beer essays, each rebuilt as a can on a turntable.
Jetstream Deck
Bluesky's firehose, thousands of events a second, drawn at 60fps without React.
Charlos
An always-on agent that outgrew Telegram. Now its skills declare their own UI.
Arc Gallery
A family photo album bent into a 3D arc you orbit from the inside.
Wedding Invite
Our own wedding invite, hand-coded. Every guest was a user.
Working Style
Treat it like it's mine
Ownership doesn't stop at the merged PR. When something breaks at 3am, I want to be the one who knows why.
Read it like an auditor, build it like a teammate
Auditing Solidity taught me to ask "how does this break?" before "does this work?" Same for writing: if a teammate can't follow it in one read, it's not done.
Reliability is the baseline, not a feature
Users never notice when it works. They leave when it doesn't, so I'd rather catch a failure in CI than in a support ticket.



