About
I build systems and the interfaces people use them through. Most of the work has been for small companies, usually as the one person on the whole thing: the wire protocol, the auth, the backend, and the pixel that moves on screen.
I trained in visual arts at OCAD and spent years in Toronto ad agencies (Cossette, Leo Burnett, MacLaren McCann, BIMM) doing design, print, motion and Flash development for brands like Bell, Ford and General Mills. Flash is where the art and the code met, and the line from there runs through React Native and Electron to the React applications I build now. I still do the design work on everything I build; no one has paid for it by that name since the agencies.
The recent years have been systems: a portal for Anyon's quantum computers, a multi-tenant auth and user platform of my own, a climate-controlled enclosure with eight sensors on a message bus, and a documentation search stack that runs with no network. Real-time data is the thread through most of it, from MQTT into a car elevator to canvas graphs of qubit telemetry.
I work remotely and have for years, from Toronto, Vietnam and wherever else I have been. CV as a PDF.
Technology
Front end: React, React Native (iOS and Android, with native modules in Swift and Java), TypeScript, Next.js, Electron, D3, Apache ECharts, canvas, PixiJS.
Back end and data: Go (Fiber), Node, REST and OpenAPI, MySQL, Elasticsearch and OpenSearch, GreptimeDB, InfluxDB, MongoDB, Typesense, NATS JetStream, MQTT, websockets.
Auth and platform: Keycloak, Microsoft Entra, OIDC and OAuth 2, DPoP, OPA, Docker, nginx, Ubuntu, Wolfi, Azure, CI/CD on GitLab and Forgejo Actions, NX monorepos.
Design and tooling: UI/UX, Affinity Designer, Photoshop, OmniGraffle; AI-assisted development with Claude Code and a local RAG over library docs.
Recent work
The works and experiments catalogue is the long version.
- ni-rag, 2026: air-gapped hybrid documentation search, served to Claude Code over MCP.
- White Room, 2024 to now: multi-tenant user management in Go, live at ni-app.ca.
- CCSM, 2025: a climate-controlled enclosure on a Raspberry Pi, eight sensors, NATS, GreptimeDB and a live dashboard.
- Anyon, 2024 to 2026: Thunderhead, the portal through which Anyon's quantum computers are managed and clients such as Calcul Québec manage their users, API keys, job permissions and results.
About this website
Name Industry is where I test and run experiments with the technologies I work with, and where the write-ups of past work live.
Technical
The site is a Next.js application served as a single Node process behind nginx on a small VPS. Pages are rendered ahead of time where they can be; images are resized on the server on first request. Builds and deploys run from a Forgejo instance on my own machine, so nothing about the pipeline lives in a cloud service.
I open-source what I make unless a client does not allow it, or where what I have built for myself is not up to grade.
Privacy
No tracking of any sort: no analytics, no third-party scripts, no telemetry from the framework. The browser keeps three preferences in local storage, the colour theme, the panel layout and the monitor setting, and nothing else, unless you sign in to the client area: then it also holds the sign-in state for the session and the key that binds the tokens to this browser, and the sign-in itself talks to my own identity server at auth.ni-app.ca. Nothing is sent anywhere else. If you want to hear about new write-ups or code, email me.

