About
A generalist, on purpose.
I started my career in 2005 writing sync protocols for the Palm and BlackBerry apps that medical residents and surgeons used to log their cases, and I have been shipping software ever since: the BlackBerry event guide for the Vancouver 2010 Olympics, white-label marketplaces for VMware and Cisco, and most recently an enterprise visitor-management platform at Sign In Solutions, where I built authentication, messaging and access-control integrations.
I have worked in Ruby, Python, C#, Java and TypeScript; in Rails, Django, .NET and NestJS; and in every version of Angular from AngularJS to 20, plus React and Vue. That range is what makes me effective with AI coding agents. I can tell when generated code is wrong in any layer, and I know which constraints to write down so that it isn’t.
I live in Meadow Creek, in the Kootenays of British Columbia, and work remotely. Outside of work I am the volunteer developer for our community centre and I build the control system for my own greenhouse.
How I work with AI
Agents get a map
Every repo has an AGENTS.md that routes each kind of change to the doc that governs it, with the patterns to follow and the pitfalls that have already bitten.
Guardrails are mechanical
Typed contracts shared between front and back end, lint rules that enforce the architecture, and one gate — lint, tests and production builds — before anything is called done.
Review is not optional
An agent’s output is my output. I read it, test it and own it. At Sign In Solutions I helped bring that approach to projects, docs and developer environments across the organization.
Skills
AI-assisted delivery
- Claude Code & agent workflows (daily use)
- LLM integration (Claude API) (daily use)
- Speech-to-text pipelines
- Agent-ready repos & docs
Front end
- Angular (daily use)
- TypeScript (daily use)
- React
- Vue
- AngularJS migration
- SSR & SEO
- Accessible, responsive CSS
- Micro-frontends
Back end & APIs
- Node.js (daily use)
- NestJS (daily use)
- OAuth 2.0, SAML, JWT (daily use)
- Ruby on Rails
- Django
- .NET MVC
- REST API design
Cloud & DevOps
- AWS (Cognito, SNS, SQS) (daily use)
- Docker (daily use)
- Nx monorepos
- CI pipelines
- nginx & Linux
- Queues: Redis, RabbitMQ, MQTT
Data
- PostgreSQL (daily use)
- MySQL
- SQL Server
- Oracle
- TypeORM
Languages
- TypeScript / JavaScript
- Ruby
- Python
- C#
- Java
- SQL
- C / C++
- PHP
Mobile & devices
- Flutter
- iOS & Android
- BlackBerry, Palm, Pocket PC
- Raspberry Pi & IoT
Highlighted: what I use day to day.