Senior Front-End Developer - Rogers Communications - Ottawa, ON (Remote)
(2015-02 - 2026-07)
Functional scope: front-end architecture lead, front end through services
- Consolidated a fragmented legacy codebase into one shared foundation. Reverse-engineered a third-party platform's web components into a centralized, variable-driven architecture, replacing hundreds of divergent one-off implementations. A full brand update previously took up to six months and three dedicated people and still missed instances; afterward it was a verifiable, minutes-long operation. Four years in production, 50+ properties, 35,000 end users
- Built a /create/ shell with separately built applications composed under it by path. /create/podcast (a course builder), /create/scormplus (a wrapper bringing externally authored content under our own token system), and /create/notification (a service watching for new content and alerting subscribers). Each its own Node and React application, sharing the design token layer and the platform's learning-record APIs underneath. A fourth was in progress
- Architecture as a product for other people. Non-engineers — instructional designers and content authors — shipped production output through the system without touching the code underneath. Adoption came from teams that didn't report to me
- Cross-cutting improvements shipped once. A core layer carried both style and behaviour, with extensions inheriting from it — so WCAG 2.1 / AODA accessibility enforcement applied globally and retroactively to already-published content, without republishing
- Migration safety and incremental rollout. Built a query-string file override for testing changes in situ against live pages in the real environment, with promotion by file move and rollback in seconds. Every extension shipped a baked-in fallback copy inside the package, so remote delivery was an enhancement rather than a dependency
- Wrote the back-end services behind the front end. Node.js APIs and REST integrations end to end, plus an event-driven telemetry wrapper capturing real-time UI events from third-party tools and streaming them to analytics backends
- Diagnosed and fixed a production outage overnight caused by per-call token issuance against a vendor API — built a Redis-backed token cache and service wrapper; live the next morning
- Drove the decision through the org. Approval from five managers and a director — three with no stake in the tool but a say in the decision — by translating the technical case for non-technical stakeholders
- Invited by the platform vendor to present this architecture at multiple client symposia, as an approach they had not known was achievable on their product
Co-Founder & Lead Systems Architect - Slate eLearning / Slatebuilder.io - Carleton Place, ON (Remote)
(2026-01)
Authoring and publishing SaaS platform in React and TypeScript, on Supabase and Cloudflare. Set the architecture and drove the build; my co-founder now handles maintenance.
- Architected a Git-driven publishing pipeline — a repo push triggers a build that updates live pages with no manual step
- Built a content ingestion and migration engine with batch import, parsing exported third-party packages into a native schema
- Shipped a cross-origin delivery model using postMessage bridging between embedded packages and a host service
- Designed the collaborative review tool — stakeholder feedback anchored to live builds rather than a separate document
- In production with paying customers
Frontend Developer - Thinkwrap Commerce - Ottawa, ON
(2012-01 - 2015-02)
- Built custom front-end implementations on enterprise retail commerce platforms (SAP Hybris, Oracle ATG) for national brands — conversion-facing storefront UI bridging complex back-end architectures with responsive, high-performance components
- Worked directly against design comps, holding visual fidelity and performance across a wide device and browser matrix
CMS Implementation Specialist - Lyris - Barrie, ON
(2008-03 - 2011-08)
- Designed structured content management systems balancing author flexibility against backend constraints
- Worked inside a scrum team with core development: sprint planning, code review, platform refactoring, database integrations