code. ship. repeat.
01 / 08
An AI pronunciation and speaking coach with a real-time voice pipeline: audio streams over WebSockets from Next.js 15 to a FastAPI backend with sub-second round-trip latency, phoneme-level scoring via Wav2Vec2 ASR aligned with CMUDict, conversational tutoring through OpenRouter LLMs, and spoken feedback via Google Cloud TTS. Better Auth handles GitHub and Google OAuth over Drizzle ORM and PostgreSQL (Neon); deployed on AWS.
02 / 08
An AI-powered bookmark manager that organizes, stores, and searches bookmarks with a modern full-stack architecture.
03 / 08
An offline-first web client for Obsidian vaults stored on GitHub. A local-first sync engine on IndexedDB (Dexie) SHA-diffs against the Git Trees API to fetch only changed blobs, a Cloudflare Worker runs the GitHub OAuth flow so the client secret never touches the device, and react-markdown renders full markdown (wiki-links, callouts, backlinks, frontmatter) with FlexSearch searching the entire vault client-side — zero backend calls after first sync.
04 / 08
Open-source contribution to the FastCRUD FastAPI package: implemented cursor-based pagination validation that enforces column type constraints before query execution, preventing runtime database errors. Added type-aware validation for Integer (INT16/32/64), datetime, and UUID cursor types using SQLAlchemy metadata — database-agnostic and merged into main.
05 / 08
A document verification platform built to securely validate and manage digital records with an intuitive user experience.
06 / 08
An AI chatbot that answers questions from uploaded documents using Retrieval-Augmented Generation (RAG) with semantic search.
07 / 08
An AI-powered coding assistant that evaluates programming solutions and provides personalized feedback for improvement.
08 / 08
An educational deep-dive into vector databases, exploring semantic search, embeddings, and similarity search algorithms from scratch.