I build AI tools with care.
I started building because I wanted to solve problems that mattered. Most of what I make begins with a real person, a real frustration, and a stubborn belief that technology should make their life easier, not harder. I would rather ship one careful deliverable than a dozen rough ones.
Accessibility isn't an add-on. It's the starting point.
Accessibility isn't an add-on for me — it's the baseline. I learned early that the features that help people with disabilities make everything easier for everyone. Accessible products are kind products. That shapes every line I write.
I work from Canada, mostly on AI-assisted tooling, community infrastructure, and the quiet systems that make a product feel calm to use. I favor learning in the open — shipping things, talking about the process, and inviting others into the work before it's done.
I keep a written record of how each thing was built and why — both for the people who come next and for me, the next time I need to remember. Documentation is love letter to the future.
Right now, I'm exploring what happens when accessibility, AI, and community collide. I want to build tools that help people help each other — especially the people who've been left behind by most of tech. That's where I'm headed.
Three quiet steps, repeated carefully.
Start with Claude Code
I use Claude Code as my primary building environment — it's where most of my projects actually get made. I describe what I want, read the output carefully, and course-correct when something feels off.
Build a team of agents
For bigger projects, I've built Claude Corp — a 14-role multi-agent system where each role has a clear job: design, code, QA, communications. They work from a written Constitution so nothing gets decided by accident.
Iterate until it's honest
I don't ship until I've used the thing myself. Then I write down what I learned — what broke, what surprised me, what I'd do differently. The documentation is part of the deliverable.
Accessibility, privacy, and code that doesn't cut corners.
Accessibility isn't an afterthought in my work — it's the starting point. I aim for WCAG 2.2 AA on every interface I touch. AccessMap exists specifically because disabled people deserve better navigation tools, not retrofitted ones.
Privacy-first means the user's data is theirs. My Prompt Library stores everything locally — no backend, no account, no server that might get breached. Mutual Mesh is built the same way. If you don't need the data to make the product work, don't collect it.
Clean code over speed. I'd rather take longer and do it right than ship fast and apologise. That's not a principle I picked up from a book — it's one I learned the hard way by shipping things that weren't ready.
Still a beginner. Getting better on purpose.
I'm not a trained software engineer. I came to coding through building — I had ideas I wanted to exist, so I learned enough to make them real. That's still how I work: I build to learn, not the other way around.
Right now I'm getting better at TypeScript, React Native, and designing multi-agent systems that stay safe even when they're running unsupervised. Each project teaches me something the last one didn't.
I'm looking for collaborators, clients, or employers who want someone who will read the docs, ask the right questions, and genuinely care how the thing turns out. If that sounds like you, let's talk.
A handful of recent things.
AccessMap
Mobile app for flagging accessibility barriers — broken ramps, missing tactile paths — pinned to a real city map. Privacy-first: no tracking, no data sold.
Claude Corp
An 18-role AI team governed by a written Constitution. Each agent owns a domain; an orchestrator runs the cycles. The infrastructure behind this portfolio.
Prompt Library
Local-first prompt manager in Next.js 15. Prompts stay in the browser, API key never leaves the machine. Fifty features shipped across twenty stacked branches.