Industry Experience

Deep Breathe

London, ONCo-op in 2022, full-time since May 2025

Sep 2022 – Present

Machine Learning Engineer

Current May 2025 – Present

Spearheading development of multiple ML models for diagnostic lung ultrasound, and the labeling and training infrastructure behind them.

  • 5x faster labeling per video via a PyTorch annotation tracker
  • 500+ training experiments on cloud and on-prem GPUs
  • Millions of frames annotated through labeling infrastructure built from scratch
  • PyTorch
  • Computer vision
  • Slurm
  • SQL
Contributions as Machine Learning Engineer, Deep Breathe
  • Spearheading development of multiple ML models for diagnostic ultrasound that run on-device in real time.
  • Set up Slurm on the team’s GPU server and ran 500+ training experiments across it and GCP Vertex AI.
  • Built and led the labeling infrastructure for V7 Darwin (GCP, SQL) from scratch, used to label millions of frames.
  • Automated clip ingestion into the training database, labeling-sprint setup and pre-label uploads through the V7 Darwin API.
  • Built a PyTorch tracker propagating Labelbox annotations across frames, cutting labeling time per video 5x (10 to 2 min).

Machine Learning Developer (Co-op & Part-time)

Sep 2022 – Apr 2025

Built AI systems and data pipelines to automate the diagnosis of lung ultrasound scans.

  • 0.90 / 0.89 sensitivity / specificity of the effusion classifier on a 2-hospital holdout
  • Millions of M-mode frames generated per dataset version
  • Minutes to build a 1K-clip dataset, down from 1–2 hours
  • Python
  • Azure
  • SQL
  • OpenCV
  • Bash
  • Weights & Biases
Contributions as Machine Learning Developer (Co-op & Part-time), Deep Breathe
  • Led development of an effusion classifier: 0.90 sensitivity, 0.89 specificity on a 239-clip holdout from 2 hospitals (AJEM ’25).
  • Converted an earlier lung-ultrasound model for on-device inference in Deep Breathe’s mobile apps.
  • Built Azure/SQL data pipelines (Python, Bash, OpenCV) that ingest, process and version ultrasound data, generating 7.8M M-mode images from 140K B-mode videos per version.
  • Cut 1K-clip dataset builds from 1–2 hours to minutes: teams now download prebuilt, versioned datasets.
  • Integrated Weights & Biases into ML projects for training dashboards and evaluation logging.

Kolena

San Francisco, CA

Machine Learning Research Intern

Jan 2024 – Aug 2024

LLM evaluation, RAG and test-data tooling around Kolena’s AI Quality Platform.

  • 80% → 93% RAG answer accuracy on financial PDFs after rebuilt parsing and prompting
  • 3x less manual review with a fine-tuned LLM judge for Qwen-VL outputs
  • 5x faster text-dataset creation with a Q&A-drafting tool
  • LLM fine-tuning
  • RAG
  • LangChain
  • OpenAI SDK
  • Streamlit
  • OpenCV
  • spaCy
Contributions as Machine Learning Research Intern, Kolena
  • Fine-tuned an LLM judge to rate Qwen-VL descriptions against human preferences, cutting manual review volume 3x.
  • Raised RAG answer accuracy on financial PDFs from 80% to 93% by rebuilding parsing and prompting (LangChain).
  • Built a Streamlit + OpenAI SDK tool that drafts Q&A and similar test samples, making text-dataset creation 5x faster.
  • Shipped CV and NLP metadata extraction (OpenCV, NLTK, spaCy) in Kolena’s AI Quality Platform so users can stratify test sets and find model errors on edge cases; presented it in a webinar.

IntelliSports

Montreal, QC

Software Engineering Intern

Jan 2022 – Apr 2022

Shipped activity-recognition models for a fitness app and analyzed user retention.

  • 25% → 55% IMU cheat-detection sensitivity, via feature engineering
  • 2 → 5 workout missions after deploying four motion detectors on AWS EC2
  • 1.8x faster CPU inference with lightweight scikit-learn models
  • scikit-learn
  • SciPy
  • AWS EC2
  • PHP
  • MySQL
Contributions as Software Engineering Intern, IntelliSports
  • More than doubled IMU cheat-detection sensitivity (25% to 55%) via feature engineering with scikit-learn and SciPy.
  • Deployed punch, crunch, high-knee and jump detection on AWS EC2, growing the app’s workout missions from 2 to 5.
  • Sped up CPU inference 1.8x by switching to lightweight scikit-learn models.
  • Found, via decision-tree analysis of early user data, an onboarding path whose users were 1.5x likelier to be retained.
  • Built a PHP/MySQL analytics dashboard of user activity growth, used in pitches that secured $1.4M in funding.

Research Experience

Critical ML Lab

Waterloo, ON

Researcher

Current Sep 2023 – Present

LLM safety under fine-tuning and domain generalization. An undergraduate research assistant until graduating in 2025, now a researcher in the lab.

  • 10K+ LoRA and full fine-tuning runs for TamperBench (20K GPU-hours)
  • 21 open-weight LLMs stress-tested; safeguards fell on all 21
  • KDD '26 Oral first-authored TamperBench, top 4.5% of papers
  • LoRA / full fine-tuning
  • Multi-GPU training
  • LLM safety evaluation
  • Domain generalization
  • Vision-language models
Contributions as Researcher, Critical ML Lab
  • First-authored TamperBench with FAR.AI (KDD ’26 Oral, top 4.5%): stress-tested 21 open-weight LLMs against 9 tampering attacks in 10K+ LoRA/full fine-tuning runs (20K GPU-hours, up to 8 GPUs); safeguards fell on all 21.
  • Set TamperBench’s initial roadmap and task split for an 11-author team from 5 institutions.
  • Quoted in MIT Technology Review and University of Waterloo News (2026) as TamperBench’s lead author.
  • Created SafeTuneBed (IJCAI ’25 workshop), an open-source toolkit benchmarking LLM safety defenses under fine-tuning.
  • Built FOND’s training/eval pipelines (T-PAMI ’25); the method lifted tumor-detection accuracy 9% at unseen hospitals.
  • Co-authored Apple-funded LangDA: state-of-the-art domain-adaptive semantic segmentation with vision-language models (NeurIPS ’24 workshop; Best Vision Paper, CVIS ’24).

Vision and Image Processing Lab

Waterloo, ON

Research Assistant

Jan 2022 – Apr 2023

Egocentric 3D human pose estimation with spatio-temporal Transformers, in a Nissan-funded collaboration.

  • 38% lower error on the hardest joints (Ego-STAN, co-developed)
  • 22% fewer trainable parameters than the prior state of the art
  • KDD ’23 Ego-STAN published; an earlier version was a CVPR ’22 workshop oral
  • Transformers
  • PyTorch
  • 3D pose estimation
  • Domain adaptation
Contributions as Research Assistant, Vision and Image Processing Lab
  • Co-developed Nissan-funded Ego-STAN, spatio-temporal Transformers for egocentric 3D pose: 38% lower error on hardest joints with 22% fewer parameters (KDD ’23; CVPR ’22 workshop oral).
  • Co-authored Implicit Stylization for Domain Adaptation (ICLR ’23 Domain Generalization workshop).

Earlier research at Waterloo

  • Research AssistantSocial and Intelligent Robotics Research Lab

    Sep 2021 – Dec 2021

    Implemented IMU feature extraction for human-robot interaction and contributed it to the HRI Physio Lib toolkit.

  • Research InternHuman-Centred Robotics and Machine Intelligence Lab

    May 2021 – Aug 2021

    Implemented face identification (dlib, 99.3% on LFW) and emotion recognition (72.7% on FER2013) on the REEM-C humanoid robot with ROS, Flask and PostgreSQL.

    More from Human-Centred Robotics and Machine Intelligence Lab
    • Designed a multi-input Keras model for facial emotion recognition (pybind11 bindings of a C++ toolkit; t-SNE analysis).