/PORTFOLIO

SOFTWARE DEVELOPMENT

Featured Software Development Projects:

/ephget

A simple lightweight ephemeral portable app manager for Windows written in Go.
GoWindowsCLIPowerShell
Go75.4%
Python18.6%
HTML4.0%
PowerShell1.9%

/qlaudified

A Claude Code plugin that tracks each fact’s source and caveats.
PythonClaude CodeHooksLLM Evaluation
Python99.8%
Shell0.1%

/Obsidian-Plugins

Two Obsidian plugins: batch export of notes to PDF, and automatic tagging by folder.
TypeScriptObsidian APIesbuild
Total Downloads…
Plugins2
TypeScript79.4%
Javascript18.8%
CSS1.8%

/D2L-Scraper

Archives your D2L Brightspace courses for offline use and builds study packs from them.
PythonPlaywrighthttpxREST APICLI
Python100%

/Portfolio

This site: a portfolio designed like a filesystem.
Next.jsReactTypeScriptTailwind CSSVercel
TypeScript96.4%
CSS3.2%
Javascript0.4%

/Spotimasher

Blends two Spotify playlists into a new one on your account.
OAuth 2.0SPOTIFY APIHTML / CSSJavaScript
Javascript65.0%
HTML18.2%
CSS16.8%

/Ludum-Dare-46

A Unity game jam entry where you shield a decaying spaceship’s core from debris.
UnityC#3D ModellingGame Jam
C#100%

SCHOOLWORK

Featured Projects from University of Victoria Courses:

/Ray-Tracer

A from-scratch Python ray tracer with Phong shading, shadows and reflections.
PythonNumPyRay Tracing
CourseCSC 305
HighlightShadows and recursive reflections
View Code

/WebGL-Scenes

Two interactive 3D scenes built on raw WebGL, with no 3D engine.
WebGLGLSLJavaScript
CourseCSC 305
HighlightAnimated rigs, textures, firelight
View Code

/AVR-LCD-Display

Drives an LCD from an AVR microcontroller, with scrolling text and buttons.
AVR AssemblyCMicrocontrollers
CourseCSC 230
HighlightTimers and interrupts in assembly
View Code

/Clinic-Manager

A patient and notes system for a medical clinic, finished as a desktop app.
PythonPyQt6unittest
CourseSENG 265
HighlightGrew from classes to a desktop app
View Code

/Shortest-Path-Benchmark

Times Dijkstra against Floyd-Warshall-Roy in C to find when each one is faster.
CPythonMatplotlib
CourseCSC 226
HighlightFloyd-Warshall wins past k ≈ 23% of n
View Code

/Hash-Table-Benchmark

Times chaining against linear probing in C across load factors.
CPythonMatplotlib
CourseCSC 226
HighlightLinear probing beats chaining
View Code

/Oddly-Equal-Arrays

A recursive, sub-quadratic test for whether two arrays are “oddly equal”.
JavaRecursionHashing
CourseCSC 225
HighlightSub-quadratic: O(n^1.58)
View Code

/Survey-Processor

A C command-line tool that analyses student survey responses.
CMemory Management
CourseSENG 265
HighlightDynamic memory in C
View Code

/LaTeX-Write-ups

Math and theory assignments from six courses, all typeset in LaTeX.
LaTeXProofsStatistics
Course6 courses
HighlightTypeset proofs and problem sets

3D DESIGN

Featured 3D Models:

/Seylynn

A 3D model of the Seylynn Bowl skatepark, textured with 4K PBR materials.
BlenderSubstance Painter
FormatGLB
Triangles35K
Textures4K PBR
Downloads…
View on mod.io

/Backyard-Pool

A 3D model of a backyard pool skatepark, textured with 4K PBR materials.
BlenderSubstance Painter
FormatGLB
Triangles117K
Textures4K PBR
Downloads…
View on mod.io

/Griffin-Bowl

A 3D model of the Griffin Bowl skatepark, textured with 4K PBR materials.
BlenderSubstance Painter
FormatGLB
Triangles17K
Textures4K PBR
Downloads…
View on mod.io

/VX1000

A 3D model of the Sony VX1000, the camcorder behind countless skate videos.
BlenderSubstance Painter
FormatGLB
Triangles17K
Textures1K PBR