Projects
A web NES emulator with a hand-written WebGL CRT renderer.
Cycle-accurate 6502 CPU (all 256 opcodes, including unofficials), 2C02 PPU with loopy scroll, and 2A03 APU with non-linear mixing, compiled from C++ to WebAssembly. Ships a WebGL CRT shader (scanlines, barrel distortion, phosphor bloom), save states, an IndexedDB ROM library, and gamepad support. Drop in a ROM and play.
Technologies: C++, WebAssembly, TypeScript, WebGL, Emscripten
A real-time messaging platform whose only persistent store is a database built from scratch.
No PostgreSQL, no Redis—every user, conversation, and message lives in PetDB, a purpose-built LSM engine with no multi-key transactions. Crash-ordered writes and a client-generated UUID dedup index reach 50k+ durable message appends/sec with strong delivery semantics, while an offline-first IndexedDB outbox and receipt watermarks keep everything in sync.
Technologies: Go, React, TypeScript, WebSockets, PetDB
A private digital wardrobe with an explainable, weather-aware outfit planner.
Upload your clothes and get outfits that actually explain themselves. Async computer-vision segmentation catalogs each garment, Open-Meteo forecasts feed a CP-SAT constraint solver, and every generated outfit comes with the reasoning behind it—plus locks, swaps, and regeneration when you don't like the answer.
Technologies: Next.js, FastAPI, Python, Supabase, CP-SAT, Celery
A durable, write-optimized LSM key-value store built from scratch in Go.
An embedded storage engine with group-committed WAL writes, concurrent memtables, immutable SSTables, bloom-filter-assisted reads, a sharded LRU block cache, background size-tiered compaction, and crash-safe recovery.
Technologies: Go, LSM Trees, WAL, SSTables, Bloom Filters
An MCP-compatible AI pair-programmer that reads, demonstrates, and edits live Scratch projects.
Bridges an MCP client like Claude into TurboWarp over a Python server and a WebSocket-connected extension, so the model can inspect a project's sprites, scripts, and variables and act on the live Scratch VM with no page reloads. Tutor Mode keeps it read-only with live stage demonstrations for guiding a learner; Copilot Mode adds full script editing, including nested blocks and custom "My Blocks", for hands-on pair programming.
Technologies: Python, MCP, WebSocket, JavaScript, Electron
A music-trivia arcade powered by real playcounts, previews, and discographies.
Three music games—Higher or Lower, Album Blitz, and Name That Tune—built on live data from iTunes, Last.fm, and MusicBrainz. Includes daily seeded challenges and real-time multiplayer rooms over Socket.io.
Technologies: React, TypeScript, Node.js, Socket.io, Tailwind CSS
A living knowledge graph of an engineering portfolio, queried with citations that resolve to real source lines.
Turns GitHub repositories into a queryable graph of files, symbols, call edges, and docs, then answers questions about them with citations validated against the graph before they ever reach the user. Deterministic retrieval runs first; the language model only ever synthesizes evidence retrieval already selected—and when there's no evidence, it says so instead of guessing.
Technologies: Go, Neo4j, PostgreSQL, React, Tree-sitter, Claude API
Matches resume skills to job postings using the Claude API.
A job-hunting tool that reads a resume and a job posting, then surfaces exactly which skills line up and which are missing. TypeScript frontend, Python backend, Claude API for the matching logic.
Technologies: TypeScript, React, Python, Claude API
Adversarial probe suite that red-teams LLM system prompts.
Stress-tests a deployed system prompt against a library of structured attack scenarios: prompt injection, goal hijacking, role abandonment, data exfiltration, context manipulation, persona jailbreaks. Claude Sonnet acts as the attacker, generating and scoring probes against any OpenAI-compatible target, producing a PASS / WARNING / FAIL report with suggested fixes.
Technologies: Python, Claude API, CLI
Bare-metal sensor rig streaming live readings to a dashboard.
A full-stack IoT weather monitor: a DHT11 sensor feeds two firmware implementations (Arduino with the Adafruit DHT library, and STM32 written in bare-metal C with no HAL), a Python bridge logs readings to SQLite, and a Flask dashboard visualizes temperature, humidity, dew point, and heat index with Chart.js and gap detection for offline periods.
Technologies: C, STM32, Arduino, Python, Flask, SQLite
NES homebrew survival game, written in C and 6502 assembly.
A wave-based arcade survival game built for real NES hardware. Control a wizard fending off ten progressive waves of enemies with unique behaviors, fireballs, piercing shots, and screen-clearing nukes. Runs inside the PetNES emulator.
Technologies: C, 6502 Assembly, cc65
A fast-paced mobile word-search game built in Godot 4.
Find words on a 5x5 letter grid before the clock runs out. Longer words, power-ups, and combo streaks push the score higher; tiles are weighted by English letter frequency and refill from above as words clear.
Technologies: Godot 4, GDScript
A gamified exercise app for muscular dystrophy patients.
Built with a team of four at the MedSprint Design-a-thon. A React Native / Expo app that streamlines exercise routines and rewards patients with muscular dystrophy for hitting their goals.
Technologies: React Native, Expo, TypeScript
A rapid-fire naming game, built in React under a hard deadline.
Name as many things in a category as you can before time runs out. Built solo within a short hackathon-style timeframe.
Technologies: React, TypeScript, Vite
A home-screen widget for sub-2-second voice capture.
A native Android home-screen widget (Kotlin, Jetpack Compose) bridged into a React Native app for AI-powered task parsing with Model Context Protocol integration. Tap the widget, speak, and the audio pipeline handles permissions and capture in under two seconds.
Technologies: Kotlin, Jetpack Compose, React Native, Android SDK, MCP
Skills
Languages: C, C++, Go, Python, JavaScript/TypeScript, Java, Kotlin, HTML/CSS
Frameworks: React, React Native, REST API, Next.js, Flask, SocketIO, ZeroMQ, JNI, Jetpack Compose, Tailwind CSS
Tools: Git, Jira, Docker, Valgrind, LaTeX, Linux, MySQL, Gradle, npm, Expo, Node.js, Figma, Android Studio, Android SDK, cc65