Work

GLAS: Global Landslide Analytics System
GLAS: Global Landslide Analytics System

Machine learning · Geospatial data 2021

AI-driven landslide risk assessment using geophysical and meteorological data. ISEF 1st Grand Prize ($10k); published at the 2021 IEEE MIT URTC.

GLAS: Global Landslide Analytics System

Machine learning · Geospatial data 2021

AI-driven landslide risk assessment using geophysical and meteorological data. ISEF 1st Grand Prize ($10k); published at the 2021 IEEE MIT URTC.

LeelaFAQuantum

Next.js · FastAPI · ChromaDB · Whisper

A RAG-backed FAQ engine over YouTube transcriptions: scrapes and transcribes channel video, embeds it in ChromaDB, and serves semantic search through a FastAPI endpoint.

LeelaFAQuantum

Next.js · FastAPI · ChromaDB · Whisper

A RAG-backed FAQ engine over YouTube transcriptions: scrapes and transcribes channel video, embeds it in ChromaDB, and serves semantic search through a FastAPI endpoint.

BioConceptXplorer
BioConceptXplorer

Vector embeddings · PubMed 2023

Explores undocumented molecular interactions at scale using pre-trained vector embeddings of proteins, genes, and chemicals drawn from 30 million PubMed papers. Codon Digest winner at the Bio x ML Hackathon.

BioConceptXplorer

Vector embeddings · PubMed 2023

Explores undocumented molecular interactions at scale using pre-trained vector embeddings of proteins, genes, and chemicals drawn from 30 million PubMed papers. Codon Digest winner at the Bio x ML Hackathon.

ClipTranslator

ElevenLabs · VideoRetalking · Modal

Dubs and lip-syncs video between any of 29 languages, pairing ElevenLabs voice synthesis with VideoRetalking for lip movement, deployed as web endpoints on Modal.

ClipTranslator

ElevenLabs · VideoRetalking · Modal

Dubs and lip-syncs video between any of 29 languages, pairing ElevenLabs voice synthesis with VideoRetalking for lip movement, deployed as web endpoints on Modal.

Conversational AI over Twilio

Twilio · Speech-to-text · LLM

A phone agent that holds natural conversations over real calls, running speech-to-text, LLM inference, and text-to-speech in a low-latency loop.

Conversational AI over Twilio

Twilio · Speech-to-text · LLM

A phone agent that holds natural conversations over real calls, running speech-to-text, LLM inference, and text-to-speech in a low-latency loop.

libsixel-sys

Rust · FFI

Static Rust FFI bindings to libsixel, enabling images to render as sixel graphics directly in terminal emulators. Published on crates.io and the foundation for TermCall.

libsixel-sys

Rust · FFI

Static Rust FFI bindings to libsixel, enabling images to render as sixel graphics directly in terminal emulators. Published on crates.io and the foundation for TermCall.

Competitive Programming

Algorithms

Solutions, templates, and notes accumulated across competitive programming platforms and problem sets.

Competitive Programming

Algorithms

Solutions, templates, and notes accumulated across competitive programming platforms and problem sets.

Fun

TermCall

Rust · sixel

Video calling inside your terminal. Renders live video frames as sixel graphics so you can hold face-to-face calls without leaving the command line.

TermCall

Rust · sixel

Video calling inside your terminal. Renders live video frames as sixel graphics so you can hold face-to-face calls without leaving the command line.

The Resonance Code

React 19 · TypeScript · Vite

A wellness navigator inspired by Dr. Bradley Nelson's The Body Code, guiding users through a category tree via muscle testing to identify imbalances.

The Resonance Code

React 19 · TypeScript · Vite

A wellness navigator inspired by Dr. Bradley Nelson's The Body Code, guiding users through a category tree via muscle testing to identify imbalances.

Rusty Chess Engine
Rusty Chess Engine

Rust · Magic bitboards

A chess engine built from scratch in Rust, reaching 4M moves/sec single-threaded via magic bitboards, with FEN parsing and a 43-case perft testing suite.

Rusty Chess Engine

Rust · Magic bitboards

A chess engine built from scratch in Rust, reaching 4M moves/sec single-threaded via magic bitboards, with FEN parsing and a 43-case perft testing suite.

Maze Generator
Maze Generator

Rust · Union-find

A Rust CLI generating perfect mazes with Kruskal's algorithm over a disjoint-set structure, using path compression to stay fast on large grids and rendering straight to the terminal.

Maze Generator

Rust · Union-find

A Rust CLI generating perfect mazes with Kruskal's algorithm over a disjoint-set structure, using path compression to stay fast on large grids and rendering straight to the terminal.

Game of Life

Rust · Bevy

Conway's Game of Life in Rust, written as an introduction to the Bevy engine — whose entity-component-system architecture turned out to suit cellular automata well.

Game of Life

Rust · Bevy

Conway's Game of Life in Rust, written as an introduction to the Bevy engine — whose entity-component-system architecture turned out to suit cellular automata well.

JS Chess Engine

JavaScript · Minimax

A chess engine in JavaScript using minimax with alpha-beta pruning for move selection. The precursor to the Rust engine — same ideas, different language.

JS Chess Engine

JavaScript · Minimax

A chess engine in JavaScript using minimax with alpha-beta pruning for move selection. The precursor to the Rust engine — same ideas, different language.

Super Mario in MIPS Assembly
Super Mario in MIPS Assembly

MIPS assembly

A playable, animated Mario written entirely in MIPS assembly, rendering to the MARS bitmap display with run/idle animation and wrapping WASD movement. Nearly every operation is wrapped in a macro to keep the codebase debuggable.

Super Mario in MIPS Assembly

MIPS assembly

A playable, animated Mario written entirely in MIPS assembly, rendering to the MARS bitmap display with run/idle animation and wrapping WASD movement. Nearly every operation is wrapped in a macro to keep the codebase debuggable.