Projects
AI Fitness Platform
A multi-user platform that unifies Strava, WHOOP, and Dexcom G7 glucose data and layers Claude on top for training plans and natural-language coaching.
Full-stack application built around an async FastAPI backend that integrates four external APIs (Strava, WHOOP, Dexcom, and Anthropic's Claude) via OAuth and typed HTTP clients. Implements JWT authentication with bcrypt-hashed passwords and strict per-user data isolation, with business logic separated into a testable service layer. PostgreSQL schema is version-controlled through Alembic migrations, and the entire stack (Postgres, backend, and Next.js frontend) runs reproducibly via Docker Compose.
Open-Source Contribution: git-cola
An upstream-merged safety feature for git-cola, a Git GUI: a collapsible diff preview on revert confirmation dialogs that prevents users from irreversibly discarding uncommitted work.
Adds a diffstat and unified diff preview to the revert confirmation dialog so users see exactly what will be discarded before confirming. Shares path selection between the preview and the checkout operation so the two cannot diverge, extends MessageBox with an expand_details API, and adds unit tests for the new gitcmds diff helper. Merged upstream in July 2026.
GameDeck
A Windows system-tray app that lets gamers control music and skip YouTube ads via global hotkeys and an in-game overlay — without alt-tabbing out of a fullscreen game.
Built on .NET 8 and WPF, it uses Windows SMTC for universal media-app control and Win32 RegisterHotKey with a low-level keyboard-hook fallback for raw-input games. A translucent, click-through WPF overlay renders track info atop DXGI flip-model fullscreen, and a companion Chrome extension handles YouTube ad-skipping over a token-authenticated local WebSocket. Deliberately avoids DLL injection and DirectX hooking to stay anti-cheat safe.
News Sentiment Stock Price Predictor
A PyTorch model that predicts next-day stock price movement by combining historical market data with FinBERT news-sentiment features.
An end-to-end data-to-inference pipeline: pulls headlines from NewsAPI, filters them for relevance, scores each with FinBERT, and merges daily sentiment with two years of yfinance price data engineered in pandas. A feedforward network trains on the result with checkpointing on validation loss, alongside a test suite and an interactive inference CLI.
Personal Portfolio Website
The site you're viewing: a recruiter-optimized portfolio built with modern web technologies.
Designed and built from scratch with a recruiter-first philosophy: strong visual hierarchy, fast load times, and mobile responsiveness. Features a hero section, experience timeline, embedded resume viewer, and this projects section. Architected with reusable components and strict TypeScript throughout.