Skip to selected work

Full-stack software engineer · Calgary, Alberta · Open to U.S. relocation

Building developer tools and applied AI products.

I ship TypeScript and Python systems, maintain an open-source developer tool, and contribute production fixes to OpenAI, Astro, MSW, Google, and comma.ai.

Verified July 13, 2026

Selected work

Three projects. Three different kinds of ownership.

Evaluation infrastructure, maintained tooling, and a paid product — selected for the decisions behind them.

01

Applied AI reliability

Agent Reliability Harness

Problem
An agent can return a perfect-looking final answer while double-issuing refunds, skipping checks, or leaking secrets along the way.
What I built
A trajectory-regression harness on PyPI: policy-as-code trajectory rules, baseline-vs-candidate CI gates, OpenAI/Anthropic transcript adapters, JUnit/SARIF reports.
Technical decision
Zero runtime dependencies and byte-deterministic reports, so the evaluator itself can never flake a CI pipeline.
Verified result
v0.2.1 on PyPI; 194 tests across 3 OSes and Python 3.11-3.13; benchmark precision/recall 1.0 on 34 seeded failures; a live demo PR blocked by the gate.
What I learned
Deterministic policy checks beat model-judged evals in CI: cheaper, explainable, and reproducible.
  • Python
  • Agent evaluation
  • GitHub Actions
  • PyPI
02

Developer tooling

MSW Inspector

Problem
Mock handlers drift from real API calls, hiding coverage gaps.
What I built
A TypeScript CLI and GitHub Action that compares AST-parsed handlers and calls.
Technical decision
ts-morph over text matching to understand fetch, Axios, and handler code.
Verified result
A public package and Marketplace action with contributors, cross-platform CI, releases, and a roadmap.
What I learned
Maintaining a public tool means docs, releases, and contributor experience matter as much as the parser.
  • TypeScript
  • ts-morph
  • GitHub Actions
03

Full-stack product

TypeJung

Problem
An assessment needs reliable account, payment, persistence, and recovery paths to become a product.
What I built
Assessment UX, auth, persisted results, Stripe payments, email capture, and AI reports.
Technical decision
Bound model output inside a deterministic workflow; keep billing and account state outside it.
Verified result
22 registered and 7 paying users as of July 13, 2026; CA$74 recorded June 29.
What I learned
Real payments shift the work: recovery paths, webhook idempotency, and account-state edge cases dominate after launch.
  • React
  • TypeScript
  • Supabase
  • Stripe

Open-source evidence

Reviewed in public.

Fourteen changes accepted across seven repositories, spanning reliability, typing, language tooling, accessibility, documentation, and test performance. I also maintain MSW Inspector end to end and hold Astro’s L1 Contributor role, with weekly reviews and issue triage.

About and experience

Reliability is a technical skill and an operating habit.

I am a Calgary-based software engineer completing a B.S. in Computer Science. I am seeking developer tools, platform, and applied AI roles with end-to-end ownership, and I am willing to relocate to the United States.

Safety-sensitive industrial work shaped how I approach testing, failure paths, documentation, escalation, and production responsibility.

Primary stack
TypeScript, Python, React, Node.js, PostgreSQL
Education
B.S. Computer Science, expected October 2026
Target roles
Full-stack, developer tools, platform, applied AI
Currently
Maintaining MSW Inspector, contributing weekly to Astro, and interviewing for full-time roles — updated July 13, 2026

Contact

Let’s talk about useful software and hard problems.

Open to Canada-based and remote roles, and willing to relocate to the United States. The résumé is the overview; GitHub is the evidence.