Projects
A real handheld console built from a Hack the North Solana badge.
Game Boy and NES firmware that turns the Solana badge into a playable handheld. Games are bundled into the badge's factory partition, selected from an on-device menu, and rendered through embedded emulator cores.
Technologies: C++, C, Embedded, Game Boy, NES, PlatformIO
Low-level transformer optimization that reached 1,152.3 tokens per second.
A performance-focused entry for Dryft's Hack the North challenge. The project experiments with transformer kernels, memory layouts, fused operations, and autoresearch tooling to make autoregressive inference generate tokens as quickly as possible.
Technologies: Python, PyTorch, Triton, CUDA, Benchmarking
An adaptive interface runtime that learns how users work.
A Hack the North MVP that generates dashboards from application capabilities, observes how they are used, and proposes safe, evidence-backed interface improvements. Changes are validated, animated, versioned, and undoable.
Technologies: Next.js, TypeScript, OpenAI, Sentry, SQLite, Tiger Data
Take songs apart. Build something new in a browser-based stem studio.
Demucs separates songs into vocals, drums, bass, and other instruments. Arrange stems from multiple tracks, adjust tempo and pitch independently, and save your mix. A shared Web Audio scheduler keeps live playback and stereo WAV export aligned, while Celery workers handle separation and private S3-compatible storage holds the audio.
Technologies: Next.js, TypeScript, Python, Demucs, Web Audio, Celery, PostgreSQL
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.
Every user, conversation, and message is stored in PetDB, a purpose-built LSM engine with no multi-key transactions. The browser uses an IndexedDB outbox for offline sends; client-generated message IDs and receipt watermarks make reconnects safe to replay.
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