History
Where I’ve worked since 2016, the tools I’ve used, and the principles I hold my work to.
- Track record
- 8 entries, 2016–present
- Tools
- 9 groups
- Practice
- 6 principles
Track record
Founder & Senior Software Engineer
DriftPilot
My product engineering studio. I spent the first half of 2026 researching AI stacks, then designed and shipped two live Next.js sites end to end, with a performance budget enforced in CI.
Family leave
Planned break
Time between roles. I came back to full-time engineering in January 2026.
Senior Software Engineer
AutoTrader.ca — AutoSync
Built production features on a national automotive SaaS platform. I replaced three years of object-cache churn with Redis Object Cache Pro on a dedicated host, and nobody reverted it in the three years after.
Software Engineer (Full Stack-Product)
AutoTrader.ca — AutoSync
I came over from Convertus with the platform in the acquisition and kept doing full-stack product work on it, until my promotion to Senior Software Engineer in 2021.
Full Stack Development Specialist (Intermediate)
Convertus (acq. AutoTrader.ca)
A WordPress multisite serving enterprise automotive clients, extended with custom object-oriented PHP. I wrote the Tadvantage platform’s SEO subsystem (Vehicle and AutoDealer structured data, custom inventory sitemaps, canonical and meta handling) and co-built myGarage with its price-alert service. The platform went on through the acquisition to serve AutoSync dealer sites.
Programming Teaching Assistant
VFS School of Creative Technologies
I coached students through debugging, code review and engineering practice, and rebuilt the internal grading platform in Vue.js and MySQL to replace the instructors’ workflow.
Junior Full-Stack Developer
VFS School of Creative Technologies
Built responsive web apps and internal database-driven platforms in AngularJS, React, Python, PHP and MySQL.
Education
VFS, Programming for Games, Web & Mobile · Douglas College, Computer Science
Awarded Top User Interface Design, VFS School of Creative Technologies, 2017.
Tools
- Languages
- TypeScript, JavaScript, PHP, Python, SQL, Bash
- Frontend
- React 19, Next.js App Router and Server Components, Vue.js (Vuex, Vue Router), Tailwind CSS, design tokens, SCSS, Webpack, WCAG accessibility
- Backend
- Node.js, Express, REST APIs, React Server Actions, WordPress Multisite and WP-CLI, MySQL, PostgreSQL, MongoDB, Redis, Zod validation
- Performance
- Object Cache Pro, WP Rocket, object and page caching strategy, k6 load testing, New Relic, Core Web Vitals and performance budgets
- Cloud & DevOps
- AWS (CodeDeploy, S3), Vercel, Docker, Cloudflare, GitHub Actions, Bitbucket Pipelines, Jenkins, CI/CD
- Quality
- PHPUnit, Jest, SonarQube, Veracode, ESLint, PHPCS, Composer, code review
- Integrations
- CARFAX, Auth0, Optimizely, ChromeData, Slack API, SFTP, Nodemailer, SOAP and REST partner feeds
- AI & automation
- AI-assisted development with Claude, a multi-agent review workflow where only one role writes code, prompt engineering, n8n
- Practice
- Architecture guardrails, decision records, release ownership, technical SEO, EN/FR internationalization, Agile and Scrum, mentoring
How I work
Budgets, not intentions
A quality bar written in a doc slips over time. One that fails the build stays put.
Contracts over implementations
Typed accessors and domain contracts, so I can replace what’s behind them without a rewrite.
Guardrails before refactors
I sort every module first: never rewrite, extract for reuse, stable with sign-off, or safe to improve.
Decisions with consequences
Decision records that say what a choice costs, as well as why I made it.
Privacy in the pipeline
If a mistake could leak something, the build should stop it before a reviewer has to catch it.
Gaps in writing
I write down known weaknesses and what they cost, before anyone asks.
