A dependable foundation for everyday work.
At iSight, dependable software meant keeping business logic, data, and day-to-day operations working together. I developed Node.js services and worked with PostgreSQL and MySQL, helping turn business needs into systems the team could maintain and rely on.
Taking the lead on call brought that work into focus: an interface is only as useful as the services behind it. Supporting production, investigating incidents, and looking after data integrity shaped a practical approach to software that continues to serve people after it ships.
Node.js / PostgreSQL / MySQL / JavaScript
Connecting the digital experience to the operation.
At Canopy Growth, the work moved between expressive public-facing websites and the systems supporting production. I built animated web experiences and contributed to an internal application connected to hardware, bringing the same care to how the software felt and how it functioned.
Behind those interfaces, AWS infrastructure, Terraform, and delivery pipelines helped support reliable releases. A production-health dashboard in Grafana gave the team a shared view of what was happening on the line, with documentation that helped it remain useful after handoff.
React / AWS / Terraform / Grafana
Making good foundations available to every team.
At Ross Video, a shared component platform helped multiple product teams build with greater consistency. I helped lead an accessible TypeScript and React library, pairing reusable components with the testing and documentation needed to make them dependable across enterprise products.
The work extended into the developer experience. A project-bootstrapping tool brought setup from around two hours to under a minute, giving teams more time to focus on their products. Mentoring new colleagues and supporting the team as Scrum Master helped turn those shared tools into shared practice.
TypeScript / React / Storybook / Playwright
A clearer path through a complex platform.
Returning to Ross Video brought a new focus: making a large platform easier to evolve. I worked on a React component library shaped by domain-driven and hexagonal architecture, reducing duplication and creating clearer boundaries between parts of the system.
Moving a Java-based interface to React helped cut feature delivery time by half, while improved scaffolding reduced onboarding overhead. Code reviews, documentation, and knowledge-sharing made the changes approachable, helping the team carry the improvements into everyday development.
React / TypeScript / Java / Architecture
Making the in-vehicle experience more responsive.
On Ford’s SYNC infotainment systems, an interface issue could begin anywhere from a React component to a vehicle module. Working alongside embedded, QA, and design teams, I traced release-critical problems across those boundaries and helped turn complex failure sequences into reliable production fixes.
I also contributed to the React 18 migration across roughly ten applications and the modernization of around 900 tests. The rollout brought screen startup from about thirteen seconds to eight and improved view responsiveness. A Python tool for tracing CAN signals gave the team a faster way to understand what the vehicle was telling the interface.
React / TypeScript / MQTT / Python / CAN
Making a satellite network easier to understand.
For Telesat Lightspeed, Maestro brought complex satellite-network information into a shared engineering view. I helped translate topology, candidate links, resource allocation, and historical system state into interfaces that made the relationships easier to explore. A Cesium globe prototype added node selection, playback, and satellite-to-ground connection highlighting.
Alongside that work, I contributed frontend architecture, API contracts, and decision records to give the project clearer integration boundaries. In an AI-first delivery workflow, I introduced a test-driven approach to validating generated code and raised failure and recovery scenarios in design discussions, helping the team consider both the experience on screen and the resilience behind it.
React / TypeScript / Cesium / gRPC / AI-assisted TDD