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