Principal Software Engineer, AI · Okta · Toronto

Platforms, teams, and production ML systems, built from scratch.

From 2023 to 2026 I founded and scaled Sanofi’s first AI engineering organization to 70+ people across Toronto, Paris, and Boston. Before that, four years on Loblaw’s pricing, promotion, and segmentation platforms. On my own time I build KeySplash and Eonmark.

01 About

Make good models easier to build, ship, and operate, then build the team and standards that keep it that way.

I work at Okta as a Principal Software Engineer, AI. At Sanofi I built the AI engineering organization from zero: 7 direct reports, 30+ FTEs, and 40+ contractors, reporting to the VP of R&D. Earlier: Customer AI at Petco (via ShyftLabs), four years at Loblaw across data engineering and MLOps, and audience-data pipelines at Numeris.

  • Design for reliability and repeatability from day one.
  • Prefer reusable platform leverage over one-off heroics.
  • Make tradeoffs explicit: cost, speed, complexity, ownership.
  • Build teams and standards that improve over time.

Okta (2026–present) · Sanofi (2023–2026) · Petco via ShyftLabs (2023) · Loblaw (2019–2023) · Numeris (2017–2019) · University of Toronto (2014–2015)

Python SQL Go Scala Terraform AWS GCP Kubernetes vLLM Airflow SageMaker Vertex AI Spark Snowflake

02 Work

Selected work

Platform, LLM, and ML engineering across pharma and retail.

03 Building

Building in the open

Personal projects, made on my own time. Code, issues, and history are public.

Live

KeySplash

A calm, ad-free keyboard toy for toddlers. Every key shows a card and says it aloud. Works offline.

Pre-alpha

Eonmark

An open-source, Mac-native real-time strategy game in Rust, built on a deterministic fixed-point simulation. Not yet playable. Apache-2.0.

Concept

Agent Soul Kit

Soul, memory, and posture files for AI agents, with a browser playground.

Machine-readable: profile.json · experience.json · skills.json · llms.txt

04 Contact

LinkedIn is best.

Send me a message on LinkedIn. For KeySplash or Eonmark, a GitHub issue is better: the answer stays where the next person can find it.