03 - Projects ❄
Built, tested & running.
Browser-native compilers, OCR emulators, live data pipelines, production infrastructure, full-stack builds, and degree coursework - designed, shipped, and tested.
✈
A browser trainer for DCS cockpit procedures. You click the real switches on real cockpit photographs, and a simulated aircraft underneath decides when a checklist step is actually complete - not when you say it is. Live at sortieprep.com, where it serves 100+ monthly visitors.
- 12 procedures / 274 steps across start-up, INS alignment, air-to-air, landing, and shutdown - for both the pilot and RIO seats
- Aircraft-agnostic core (switch state machine, event bus, hotspot & pan/zoom view layer) with the F-14B as a data-only module, so new airframes drop in
- Headless test suite drives every procedure to completion through the real sim, exercises failure paths (hung start, rejected CAP entry) and verifies no hotspot overlaps
JavaScriptES ModulesState MachinesPWA · Service WorkerCloudflare Workers · D1Zero-dependency
⌨
A free, freeCodeCamp-style C and C++ curriculum where the code you write is compiled for real: Clang 20 compiled to WebAssembly runs in a Web Worker on your device - no server, no account, no waiting. Live at cpparena.com.
- 48 modules and 318 steps from
printf to professional C++ - pointers, RAII, the STL, templates, move semantics, concurrency, memory ordering - plus 52 tested reference pages
- Deathmatch mode: 657 drills (62 of them classic interview questions) - predict the output, fill the token, spot the bug, will it compile - ranked Silver I to The Global Elite; every 8th rep is a compiled boss rep
- 11 multi-milestone projects plus a 12-project Pro Track graded by GitHub Actions in the learner's own repository: CMake, gdb, sanitizers, GoogleTest, mutation testing
TypeScriptClang 20 · WebAssemblyWASIBrowser TestsGitHub ActionsStatic · Serverless
☕
A free Java course following the University of Helsinki MOOC's parts 1-14, with javac 21 and a real JVM running in your browser - you compile and run on your own device, nothing leaves it.
- Follows the MOOC's topic order (modules 1-54) with its own lessons, fill-in-the-blank steps, one-at-a-time hints, and a multi-file editor
- Built in CI-fenced batches - 13 of 20 shipped: the Playground, "What does it print?" challenges, and JUnit 4 tests executing in the browser
- Deathmatch drills, interview prep, daily challenge and placement quiz, modeled on C/C++ Arena
TypeScriptJava 21 · In-browser JVMJUnit 4GitHub Actions
🕹
A browser emulator that turns retro-game dialogue into a live language lesson: OCR watches the screen, translates it, pronounces it, and collects vocabulary into a spaced-repetition deck - Duolingo, but you learn by actually playing.
- Full GB / GBC / GBA / NES / SNES / Genesis / NDS emulation with save states and battery-SRAM persistence; 28 languages, translatable in any direction
- Live OCR pipeline: PaddleOCR PP-OCRv5 (an ~8 MB on-device neural model) with a Tesseract fallback, Hunspell spell-correction, and per-region translation of dialog boxes, menus and battle text
- Tap any word for an instant dictionary popup; Web Speech TTS; SM-2 spaced-repetition deck with a due queue, streaks and CSV export
JavaScriptEmulatorJSPaddleOCRWeb Speech APIIndexedDBPWA
⚔
Zero-guessing build companions for Diablo IV and World of Warcraft: Forever that live on your second screen or phone - every skill, gear priority, rotation step and endgame phase, at the exact level you need it.
- Level-by-level build paths in checkable bands ("Levels 3-5") with per-device progress persistence and a "you are here" marker
- Hand-built in-game character screens: quality-colored hover tooltips with affixes, temper lines and flavor text - 21 hand-drawn SVG slot icons, zero hotlinked assets
- Installable, fully offline PWA fed by CI, deploy and nightly data-sync GitHub Actions pipelines
TypeScriptPWA · OfflineSVGGitHub ActionsCI/CD
▤
Ten categories of live headlines cycle continuously through a grid of rich tiles - photos, excerpts, source logos - so the news stays glanceable without touching a scrollbar. Zero API keys, zero server costs.
- Heartbeat tile engine: every tile swap is a timestamp comparison on a single 250 ms heartbeat, so swaps, hover-pauses, countdown bars and stuck-state healing are pure functions of time - a throttled background tab can never permanently stall one
- Photo & excerpt pipeline scrapes
og:image / JSON-LD after resolving Google News gateway links back to real publisher URLs - ~90% coverage from feeds that ship neither
- React 18 + strict TypeScript end-to-end, with a data layer that transparently switches between a live Express API and pre-built static snapshots
React 18TypeScript strictExpressRSS · ScrapingCI/CD
✛
620+ CS2 pros' settings distilled into one-click, copy-paste console commands - crosshair, sensitivity, viewmodel and HUD/radar in a single paste - auto-updated weekly.
- Configs are joined into a single
;-separated line on purpose: the CS2 console is single-line, so multi-line pastes are unreliable
- Converts every player's legacy crosshair into CS2's post-patch convar system (the Sept 2026 "Rush Hour" update removed share codes and the old
cl_crosshair* convars), reproducing published values for donk / m0NESY / s1mple exactly
- Filters out cheat-protected and removed convars automatically, so one paste always applies cleanly
HTMLJavaScriptGitHub PagesWeekly Auto-Updates
⎈
GitOps Cloud Infrastructure Home Lab
github ↗
Production-grade Kubernetes running on bare metal in my home - declaratively managed, self-healing, and administered over a zero-trust network. The repo is a sanitized public mirror of my real infrastructure-as-code.
- Immutable bare-metal Kubernetes on a Talos Linux kernel layer - no SSH, no shell, no config drift - tuned for local compute budgets
- Automated GitOps deployment engine with FluxCD + Kustomize - every change ships from a git commit; if it isn't in Git, it doesn't exist
- Runtime security monitoring with Falco on the modern eBPF driver, streaming syscall-level threat detections to a dedicated event UI
- Prometheus + Grafana observability, CloudNativePG PostgreSQL 16 clusters, and nightly self-auditing backups with heartbeat health checks
- 18 self-hosted services - from CI/CD (Forgejo) and automation (n8n) to document management, media, RSS, and local AI
KubernetesTalos LinuxFluxCDFalco · eBPFTailscaleCloudNativePG
▦
Full-Stack Inventory AppTeam e-commerce CRUD through the full request lifecycle - Express, Sequelize, Tailwind, Jest-tested routesgithub ↗
Movie Theater REST APIExpress + Sequelize API with express-validator and a re-seedable SQLite database, verified in Postman
WGUPS Package Routing - DS&A IICustom hash table + greedy routing that delivers 40 packages across 27 addresses under a 120-mile budget
SonarCloud Quality Gate in CIGitHub Actions pipeline running Jest + SonarCloud scans on every push and pull requestgithub ↗
◎
DefectPredict - AI Test Prioritization (Capstone)
github ↗
My WGU B.S. Computer Science capstone (C964): a machine-learning service that predicts which code is most likely to fail and reorders the CI/CD regression suite to run the riskiest tests first - shrinking feedback time and cloud compute.
- Random Forest classifier scoring each commit's defect risk from version-control history, defect tickets, and past test outcomes - targeting a 30% drop in regression-suite runtime and ≥85% precision on the first pass
- Served as a FastAPI microservice in Docker, wired into Jenkins via webhooks, logging every prediction to PostgreSQL for retraining
- Secured with OAuth 2.0 and TLS 1.3; validated through unit, integration, and end-to-end tests plus a two-week shadow-mode rollout
Pythonscikit-learnRandom ForestFastAPIJenkins CI/CDDockerPostgreSQLpandas
◈
The portfolio is a project too — treated like production software, not a template. Open the dev tools; the build is part of the pitch.
- Interactive 3D badge on a physics-simulated lanyard — React Three Fiber + Rapier rope joints, draggable and throwable
- Progressive enhancement: a pure-CSS badge renders instantly, then upgrades to WebGL physics when the device can run it
- Built with Vite, deployed automatically to GitHub Pages by a GitHub Actions pipeline on every push to main
- Hand-rolled design system, a vanilla-JS command palette (try ⌘K), and a playable Warcraft III-style main-menu easter egg
React Three FiberRapierThree.jsViteGitHub ActionsVanilla JS