AI-native
software
engineer.

I build applications, AI agents, and the tools to test how they behave. My work spans production software, education, and research.

UBC Okanagan Computer Science graduate.
FAA private pilot. APPI P3 paragliding pilot.

An imagined studio with an oak desk, a HelpMe screen, and an aviation headset overlooking an alpine ridge.

HelpMe

AI feedback inside Canvas

I build parts of HelpMe that connect AI feedback to real course workflows. My work includes Canvas LTI deep linking, structured feedback across services, and configurable course agents for LANTERN.

Read the story

Instructor Choose a question

The real HelpMe picker lists demo questions to insert into Canvas.

Student Receive feedback

A synthetic student response receives a comment and provisional score inside Canvas.
Real Canvas and HelpMe demo. Synthetic course content and responses. Full-size feedback

AiTutor and AI Tutor Harness

Testing tutoring integrity under pressure

I helped build AiTutor and created a harness to test when tutoring models give away answers under repeated student pressure. That work led to two first-author computing-education papers.

Read the story
AI Tutor Harness report showing leakage, supervisor interventions, and comparisons across tutoring configurations.
AI Tutor Harness. A real report from the 900-conversation study.

Config Agent

From onboarding spreadsheet to SaaS configuration

At DxFactor, I built an agent that turned onboarding spreadsheets into dependent API operations, with retrieved documentation, persistent state, validation, and retries.

Read the story
  1. Read the spreadsheet

    Understand the onboarding data.

  2. Load relevant instructions

    Retrieve the API docs for this task.

  3. Run dependent operations

    Use authenticated tools and saved state.

  4. Validate the result

    Retry, resume, or report the failure.

From spreadsheet to a configured system.

EduAI

Architecture and technical leadership

I was a secondary technical lead on EduAI. I handled architectural decisions, reviewed pull requests, ran daily stand-ups, and held review meetings with professors and other stakeholders.

Read the story
EduAIJuly 2026

A role is not course access.

A settings route checked a person's platform role, but not whether they taught the course they were changing.

Review decision

Check access to the target course before reading or changing its settings.

Anonymized decision summary from the course-authorization review.

How I build

I use Cursor, Claude, Codex, and GitHub Copilot throughout development. I define the architecture, give agents focused tasks, review their changes, and test the result. I choose the language and tools around the problem.

Tools from that workflow

A HelpMe authentication decision

The task
Open a course question from Canvas without another login.
The change
A signed LTI launch binds the question to its course.
My review decision
Reuse the existing application session and course checks. A second question-token system added complexity the workflow did not need.
Read the engineering decision

Outside software

Stavan smiling beside a lake and mountains.

I fly aircraft and paragliders. I'm an FAA private pilot and an APPI P3 paragliding pilot.

I also build websites and tools for my family, including Here and Now, a site and interactive activities for a mental-health practice.

More about me