Projects

  1. Where Americans Work

    LinkClosed Source

    2026·website, data visualization

    An interactive map of US employment flows built on Census LODES data (2002-2023). Click any county to see commute flows light up along OSRM-routed highway corridors. A second page shows a 3D extruded choropleth of workforce characteristics — jobs, workers, job/worker ratio, net flows, and retention — with log-scaled elevation, time-animated sparklines, and a camera spin on selection. Processed 14M+ rows of block-level data down to 96k routed county pairs. Frontend is deck.gl on a dark basemap, deployed as a static site.

    deck.glmapboxosrmpythonpolarscloudflare pages
  2. Open Whisper

    2026·tooling, ai

    A local macOS dictation app powered by MLX. Hold Fn to record, release to transcribe, and text is pasted into the focused field. Runs Qwen or WhisperKit for ASR with an optional Apple Foundation Model or LM Studio cleanup pass to remove filler words and stutters. A native Swift menu bar app manages the Python backend, microphone selection, and settings, with code signing for persistent permissions.

    swiftpythonmlxwhisperkitqwenmacos
  3. Stream iPhone in Terminal

    2026·tooling

    A terminal-based iPhone screen mirror that renders your phone in the Kitty terminal via AirPlay. UxPlay receives the screen mirror stream, ffmpeg decodes H.264 to raw frames, and cr-cli renders them using the Kitty graphics protocol. Mouse clicks and drags are translated to touch events via WebDriverAgent, enabling full touch and drag forwarding — enough to play games like Clash Royale from the terminal.

    rustkittyairplayffmpegwebdriveragent
  4. Life CLI

    Closed Source

    2026·tooling

    A time tracking CLI built in Rust. Start, stop, and log tasks from the terminal with automatic overlap detection for backdated entries. Supports daily logs with per-task breakdowns and a multi-day report aggregating hours by category. Data is stored as JSON in the local data directory.

    rustclapchronocli
  5. Phone Agents

    2026·tooling

    A guide on how to run coding CLIs/harnesses from your iPhone. Uses a Hetzner VPS with Tailscale for private networking and tmux for persistent sessions. Continue your Codex or Claude Code session on your phone as you commute or leave the house.

    clihetznertailscaletmux
  6. Monte Carlo Control

    2026·website, ai, tooling

    An interactive reinforcement learning visualizer for Monte Carlo control with epsilon-greedy exploration. Backend trains a Q-function in a custom grid world and tracks both training returns and periodic greedy evaluation runs. Frontend shows a live policy grid, per-state Q-values, and learning curves while training in real time.

    pythonreactfastapireinforcement learning
  7. Vibeboard

    Closed Source

    2026·website, ai, multiplayer

    A real-time collaborative whiteboard with an AI agent that lives on the canvas. Users draw, drop PDFs, and create shapes on a multiplayer board powered by tldraw and Liveblocks, then prompt the AI to see, organize, and manipulate everything directly. The agent streams 25+ structured actions executed live on the canvas. Includes a Canvas LMS integration and a drag-and-drop PDF pipeline with inline rendering and text extraction for AI context.

    next.jsreacttldrawliveblocksvercel ai sdk
  8. Codebase Indexer

    2026·website, ai

    A codebase indexer that parses source code with tree-sitter into semantic chunks then generates summaries and embeddings for semantic search. Includes a Q&A agent with tool-calling that can search, navigate call graphs, and reason about code. The Next.js frontend renders an interactive graph visualization of codebase relationships with real-time indexing progress.

    pythonnext.jstree-sitterfastapiollama
  9. Thai Jobs Index

    Closed Source

    2026·website, scraping

    A job aggregator that scrapes career pages from major Thai companies. Uses a mix of static HTML parsing and headless browser automation to handle everything from simple REST APIs to Angular SPAs with modal-based navigation. Outputs structured JSONL data consumed by a Next.js frontend for browsing listings across companies.

    pythonbeautifulsoupcrawl4ainext.jsweb scraping
  10. SAM Track

    2025·ai

    An image and video segmentation app built on Meta's SAM 3 model. Upload an image or video and describe what to segment with a text prompt. The FastAPI backend runs inference with PyTorch, generating colored mask overlays and bounding boxes. Supports frame-by-frame video processing with real-time progress tracking and side-by-side comparison views.

    pythonpytorchsam 3fastapiopencv
  11. Helix Dashboard

    2025·website

    A web dashboard for HelixDB that lets you view and interact with your graph vector database. Features an interactive graph visualization of nodes and edges with filtering and search, a query runner for executing HelixDB queries with JSON result views, schema inspection, and analytics. Supports both local instances and HelixDB Cloud with Docker deployment.

    next.jshelixdbdockerreact flowd3
  12. 2025·tooling

    An interactive CLI tutorial for learning HelixDB, a graph vector database. Walk through step-by-step lessons covering schema design, node and edge creation, graph traversal, and semantic search with vectors. Features real-time validation of solutions and progress tracking as you learn graph database concepts through practical examples.

    rusthelixdbcli
  13. UCSD Podcast Scraper

    2025·tooling

    A CLI tool that extracts lecture transcripts from UCSD's podcast system. Uses Playwright browser automation to intercept caption file URLs from the network layer as the video player loads, bypassing DOM scraping. Outputs both raw SRT files and clean plain-text transcripts.

    pythonplaywrightweb scrapingcli
  14. Helix Docs Agent

    2025·tooling, ai

    An AI agent that traverses a HelixDB graph database to answer questions about documentation. Scrapes docs into a graph structure, then uses tool-calling agents to query MCP endpoints and traverse relationships between pages. Supports both local models via Ollama and cloud models via OpenRouter, with MCP servers available over STDIO and HTTP.

    pythonhelixdbmcpollamaopenrouter
  15. Netwrxk

    Closed Source

    2025·website, ai

    An AI-powered academic networking platform that helps students discover professors and research opportunities. Features an AI chatbot built with LangGraph and Gemini that uses RAG over professor data stored in Qdrant, with Exa search integration for real-time academic lookups. Includes an onboarding flow for interests and university selection, user auth via Better Auth with Drizzle ORM, and Cloudflare R2 for data storage.

    next.jspythonfastapigoogle geminilanggraphqdrantllamaindexexabetter-authdrizzle
  16. Docs to LLM

    2025·website, scraping

    A free alternative to Firecrawl's llms.txt that crawls documentation pages into an easily digestible format for LLMs. Paste a docs URL and the Crawl4ai-powered backend extracts clean content, ready to copy or save. Built to avoid the cost of search-based MCP tools and provide up-to-date library context directly to models.

    next.jspythoncrawl4aifastapiweb scraping