ProjectsExperienceContactGitHubLinkedIn
what i'm building now

Systems work

The two projects I've spent the most time inside — one down at the GPU, one wrangling coding agents.

CudaForge

GPU-native LLM runtime

CUDA C++GitHub
CudaForge — project screenshot

An LLM fine-tuning and concurrent inference runtime written from the kernels up — custom CUDA ops plus the systems layer that keeps them fed.

  • Hand-written kernels (reduction, softmax, RMSNorm, fused LoRA, INT8 quantise) in naive and optimised forms, exposed to PyTorch through the dispatcher.
  • A concurrent serving stack: bounded MPMC queue, thread pool, deadline-aware batcher, CUDA stream scheduler, and a caching device allocator.
  • Continuous batching cuts decode steps by 70% for a 1.44x wall-clock win at batch 32; speculative decoding stays lossless against the target distribution.
  • Verified on a rented RTX 3090 — 19,511 assertions across 69 test cases, clean under TSan, ASan, and UBSan.
CUDA C++C++20PyTorchPythonCMakeDocker

Duet

Codex thinks, Claude builds

RustGitHub
Duet — project screenshot

A local-first desktop orchestrator that pairs the Claude Code and Codex CLIs — one architects and reviews, the other implements and repairs, and the test suite settles the argument.

  • Every run lands in its own managed Git worktree; nothing touches your branch until you explicitly apply the patch.
  • Cancellable, timeout-bounded Tokio subprocesses stream typed lifecycle events straight into the UI.
  • Required tests and benchmarks run independently of model opinion — a glowing review never overrides a failing check.
  • Runs, stages, diffs, and raw logs persist in SQLite, so history survives a restart instead of silently going stale.
RustTauriTokioTypeScriptReactSQLiteVite
where it started

Starter projects that helped me learn how to code

The early builds where I figured things out — shipping, breaking, and fixing until each one stuck.

Clinic Finder
LiveNext.js

Clinic Finder

Find nearby clinics with map filters, admin tools, and Supabase data.

repo →
Next.jsTypeScriptTailwind CSSLeafletSupabasePostgreSQLVercel
ToxicFilter
LiveNext.js

ToxicFilter

Classifies toxic text in real time using Flask, C++, and a simple React UI.

repo →
Next.jsTailwind CSSFlaskPythonC++Machine Learningscikit-learnReact
Manga Animator
LivePython

Manga Animator

Turns manga panels into short videos with motion, captions, and auto-editing.

repo →
PythonStreamlitMoviePyDocker
CodeCollab
LiveNext.js

CodeCollab

Browser-based collaborative editor with auth, NestJS APIs, and low-latency sessions.

repo →
Next.jsNestJSTypeScriptTailwind CSSSupabaseSocket.io
MSU Connect
LiveNext.js

MSU Connect

SpartaHacks hackathon project — a networking platform for MSU students to find roommates and connect with classmates.

repo →
Next.jsTypeScriptTailwind CSSSupabase
Verde Luxe Cleaning
LiveNext.js

Verde Luxe Cleaning

Contracted website for a premium eco-friendly cleaning service business.

repo →
Next.jsTypeScriptTailwind CSSRailway