Team Second, Manufacturing Operations

Procter & Gamble · Belleville, ON

Sept 2019 – Present

Promoted from Manufacturing Technician (2019–2025) to Team Second (2025).

  • Equipment owner under IWS Autonomous Maintenance: CIL (Clean-Inspect-Lubricate) routes, defect tagging, and condition-based monitoring across pneumatic and hydraulic systems. Currently acting team lead during team leader's leave.
  • Drive AM standards on owned equipment, nearly eliminating targeted stops through root-cause analysis and centreline management.
  • Run Daily Management System (DMS) routines on shift: tier-1 board reviews, shift handoffs, loss tracking, and upward escalation to maintenance and engineering.
  • Zero safety incidents on shift in the last year. Author SOPs adopted on shift; train new team members on AM standards and equipment-specific procedures.
  • Prior technician tenure built deep operational knowledge of P&G IWS systems and Allen-Bradley PLC control stacks, the foundation under the industrial-AI work (see Rung Reader).

Independent AI & Systems Development

Self-directed

2024 – Present

See selected projects below for technical detail. TDD with ruff + mypy strict gates on every merge.

Team Manager

HGS Canada Inc. · Belleville, ON

2013 – Sept 2019

Led a team of 20 agents for 6+ years.

  • Consistently top-quartile for CSAT, first-contact resolution, and QA.
  • Team Manager of the Month for performance multiple times during tenure.
  • Built Excel tracking tools adopted by the broader team.

Earlier

Rogers Communications · Convergys

2006 – 2012

Rogers Non-Live Consultant, Toronto (2008–2012): top 10% on all targets, led department-wide process-improvement initiatives. Convergys Associate Trainer, Belleville (2006–2008): delivered training for 15–25-person new-hire cohorts.

supply-chain-agents

Three specialist agents coordinating through a typed LangGraph state machine with human-in-the-loop approval.

  • Unit + real-LLM integration tests gating every merge in CI; REST API with SSE streaming.
  • Self-hosted Langfuse v4 Docker Compose stack (web, worker, Postgres, ClickHouse, Redis, MinIO).
  • Bicep IaC patterns modelling Container Apps + ACR deployment.
  • Two-tier output guardrails: regex hard-block + LLM judge with hard timeout, fail-open on every error path.
Python LangGraph LlamaIndex FAISS FastAPI Langfuse Ollama

rung-reader

AI-powered Allen-Bradley PLC ladder logic troubleshooter. Pure-function L5X walker; LLM only narrates.

  • Unit + integration test suite gating every merge. On-premise deployment, zero cloud dependencies.
  • Graceful degradation without LLM, PLC, or Redis. Pure-function L5X walker; LLM only narrates.
  • Mock-swappable pycomm3 driver for full CI without real hardware.
  • arq + Redis async worker for proactive anomaly detection on live tag streams.
Python LangGraph FAISS FastAPI pycomm3 Allen-Bradley L5X Ollama

irontide

From-scratch Rust BitTorrent engine that reached libtorrent-class parity, published to crates.io and now daily-driven as my torrent client.

  • BitTorrent v1 + v2 with DHT, PEX, uTP, and MSE/PE; hand-rolled wire protocol and Merkle verification.
  • Multi-crate workspace with unit, integration, and property tests; clippy-clean and lint-strict in CI.
  • Async actor architecture on tokio select! loops with backpressure and zero-copy disk I/O.
  • Engine library split from a separate gui/cli/web client; deterministic simulation runtime for concurrency tests.
Rust tokio io_uring axum Slint

avatarr

Single-binary Rust media manager unifying Sonarr and Radarr behind one core, driven by a desktop app, a web UI, and a CLI.

  • One avatarr-core behind three surfaces (Slint desktop, React web, headless CLI) over a shared SQLite database and scheduler.
  • SQLite migrations content-addressed and sha256-pinned; forward-fix only, never edited in place.
  • Release-name parser extracted to its own crate and published to crates.io.
Rust Slint React axum SQLite sqlx

inboxly

Native Rust desktop email client that rebuilds Google Inbox's bundles, snoozing, and reminders on real IMAP and SMTP.

  • OAuth2 against Gmail and Outlook with token refresh; JWZ threading with rule-layered bundling.
  • Untrusted HTML sanitised before rendering; links rewritten through a sentinel scheme.
  • State-machine Dioxus UI with signal-split rendering; pure-Rust PDF text and image OCR for attachments.
Rust Dioxus IMAP/SMTP OAuth2 SQLite

cobweb

Production HTTP/JSON API written entirely in GnuCOBOL, live on the public internet behind Traefik.

  • socat forks one short-lived COBOL process per request; COBOL parses HTTP, routes, and emits JSON by hand.
  • Correct HTTP error semantics with structured JSON responses for 400, 404, 405, and 413.
  • Deployed as a rootless Podman container behind Traefik with wildcard TLS and a systemd user unit.
GnuCOBOL socat Podman Traefik systemd

debt-tracker

Offline-first Android debt tracker published on Google Play. Room persistence, automatic backups, ten Material 3 themes.

  • Kotlin + Jetpack Compose, MVVM with a Repository layer; single-activity, enum-routed navigation.
  • Room with atomic @Transaction writes; Snapper-style backup retention to SAF storage that survives uninstall.
  • Recurring charges with startup backfill; published with release signing and ProGuard.
Kotlin Jetpack Compose Material 3 Room WorkManager

Secondary Diploma

Nicholson Catholic College, Belleville, ON

2000 – 2005

Ongoing self-directed technical education (2024–Present) in agentic AI, Rust systems, and cloud-native design.