04Selected work

Projects& Builds

Threat attributionOffline iOSReal-time multiplayerClinical VR
044 projects

All projects

Newest first.

P-01 / 2026In progressMaster’s research build

GNN APT Attribution

A 2.1M-node threat-intelligence knowledge graph and a heterogeneous GraphSAGE model that names the actor behind an indicator — and says how sure it is.

  • Built an end-to-end pipeline ingesting IOCs from AlienVault OTX into a heterogeneous Neo4j knowledge graph — 2.1M+ nodes and 7.9M+ edges across domains, IPs, URLs and events for 10 APT groups, enriched with passive and live DNS.
  • Designed a 4-layer heterogeneous GraphSAGE model with per-node-type autoencoders and a Dempster-Shafer confidence hierarchy: Tier-3 named actor (Kimsuky, 83.69%), Tier-2 nation-state (Russia, 91.05%), Tier-1 activity cluster (State-Sponsored) — it recommends the most specific tier that clears its threshold.
  • Measured tradecraft drift with a year-drop experiment on 1,740 fresh OTX events (Apr 2023 — Apr 2026): historical-only training collapsed from ~83% to ~17% named-actor accuracy on recent IOCs; retraining on 2023—2026 data recovered 73.2% named-actor and 80.1% nation-state.
  • Shipped as a FastAPI service with enrichment, training and real-time attribution endpoints, plus automated experiment namespacing and HTML comparison reporting across yearly snapshots.
PythonPyTorchPyTorch GeometricNeo4jFastAPIscikit-learnAlienVault OTX APIPassive DNS
P-02 / 2026LiveSolo developer

Bibling

An offline iOS journal that turns typed Bible references into cited, tappable quote blocks — built with AI-assisted development under direct technical review, and maintained on an ongoing release cadence.

  • Directed AI-assisted development (Claude Code) of a SwiftUI/SwiftData iOS app — an offline journal with an embedded Bible reader spanning 66 books and 31,100 verses across two bundled translations — architecting the feature set and reviewing every generated change rather than accepting output unverified.
  • Calibrated collaboration depth to task risk: fast, low-overhead iteration for exploratory UI work, versus full regression passes (95 unit / 47 UI tests) and binary-level verification — inspecting compiled archives directly rather than trusting source or version labels — before every App Store submission.
  • Diagnosed a recurring rendering defect through three incomplete AI-proposed fixes before directing a structural rewrite that unified the visual fill and interactive controls under one shared geometry, eliminating it outright — judgment that came from root-causing the failure, not accepting the first plausible patch.
  • Maintain the app on an active release cadence (8+ TestFlight/App Store builds), triaging real user-reported bugs from screenshots and device reproduction steps, shipping requested features (verse ranges/lists, photo attachment, DOCX/PDF export, adaptive landscape layout), and re-verifying privacy and export-compliance declarations against the shipped binary with each update.
SwiftSwiftUISwiftDataTextKitClaude CodeXCTestXcodeGen
P-03 / 2025LiveSolo build

Buddy Trivia

Local-network multiplayer trivia for couples and friends: one laptop hosts, everyone else plays from their phone.

  • Built a real-time multiplayer trivia game over a local network — a laptop runs the host screen while players join from their phones.
  • Synchronised game state between host and player devices with Socket.io.
  • Players pair up, draw custom avatars, and answer in rounds; first pair to the target score wins.
ReactNode.jsExpressSocket.ioSQLiteTailwind CSSVite
P-04 / 2024LiveUBC Emerging Media Lab

Nurse Practitioner VR Tool

Virtual metahuman patients that hold a real-time spoken OSCE assessment with a nurse practitioner in VR.

  • Animated and role-engineered virtual metahumans to play patients in OSCE assessments.
  • Achieved real-time speech-to-speech with OpenAI API endpoints and the Runtime Speech Recognizer library.
  • Built animation state machines for life-like interaction and the VR interaction layer around them.
  • Wrote guardrails into the system prompt so patients behave like real OSCE patients — no volunteering of extraneous clinical detail.
Unreal Engine 5Quest 3OpenAI APIC++BlueprintsMetahuman Creator