⸻ Vancouver, BC
14+ years shipping frontend, backend, and AI-powered products. I co-founded a Techstars-backed SaaS as CTO, built dev tooling for 50+ teams at TELUS, and ship open-source devtools.
I take limited consulting on developer tools, delivery systems, and AI-assisted workflows.
My first real job as an engineer was building marketing websites and newsletters at Backflip in Paris. Within a year I was the only engineer on a B2B ecommerce system a manufacturing company ran on: UI, backend, and the ops when checkout or inventory broke. The problems rarely arrived fully specified, and there was no one to hand them to. I found out I liked that. Owning the product end to end while the problem is still fuzzy became the thing I looked for in everything after.
It's why I built Liftmap at WiderFunnel, a CRO SaaS, when implementation alone stopped being enough. It's why I co-founded Speakbox (Techstars W21) as CTO while still on TELUS's API team: two customer-facing apps, the backend on NestJS and GraphQL, and every architecture decision behind them. And it's why I ended up in developer experience at TELUS: the fuzziest problems weren't in the product anymore, they were in how engineers shipped it. Four years there. Developer-facing APIs and self-service tooling used by 50+ teams. A Vercel-like deploy platform on Cloud Run took time-to-production from weeks to under a day. An AI incident workflow I founded produced 500+ reports in its first two weeks. Different products, same job: find the fuzzy problem, own it until it isn't.
That shape still holds: high-ownership product and platform work, preferably on distributed, async teams. I am most effective when I can move between product, frontend, backend, and delivery: talk to users, narrow the scope, write the code, inspect production, and leave the team with a path they can keep using.

Vancouver, BC
developer toolTauri-based macOS client for Kafka, Redpanda, and NATS JetStream. Browse topics, tail messages, inspect lag, and produce from one desktop app.
developer toolOpen-source webhook development tool. Receive, inspect, and relay webhook events locally. Go, Next.js, NATS JetStream, gRPC.
open-sourceOpen-source devtool for Next.js and TanStack Start. Visualize React Server vs Client Component boundaries in the App Router. Zero production cost; agent skill for Cursor and Claude Code.
Many agent loops pay for the same instructions, history, and tool definitions on every model call. Here is how I think about paying once instead: cache the stable prefix, keep it stable, trim what does not need to be there, and measure all of it.
Consumer AI apps treat you as one person with one grant per connector. I want built-in profiles, like a browser: each profile owns its connectors, chats, memories, and instructions, and a small global layer holds the things that are actually me.
How I secured the Hookie CLI release pipeline with OIDC trusted publishing, staged npm releases behind 2FA, and immutable GitHub release assets.
Notes from building Hookie: API-shaped commands are useful, but AI-native dev workflows need CLI commands that own the whole task.
Two albums on the streaming platforms. I write and record when the IDE is closed.
Training the Afro-Brazilian art of movement, music, and a fair bit of falling over.