Projects

StrideBound - Turn every run into a quest.

iOS fitness game that turns real-world runs into quest-based progression with experience, items, and encounter mechanics. Built with Swift and UIKit, it uses Core Location for tracking and persistent storage to keep run history, inventory, and player state synced across sessions.

  • Swift
  • UIKit
  • Storyboard
  • Core Location
  • Core Data
  • Express.js
  • Node.js

CupQuest - Find cafés, share reviews, and follow friends’ picks.

Coffee shop discovery app for finding nearby cafés, browsing location details, and posting drink or venue reviews. Adds social features like friend activity, personalized feeds, and in-app messaging so recommendations feel more personal and community-driven.

  • Node.js
  • Express.js
  • Vite
  • MongoDB
  • Socket.io
  • Firebase

Questions & Answers Microservices API - Blazing-fast Q&A at scale.

Scalable backend for e-commerce Q&A workflows. Uses PostgreSQL for storage, Redis for caching, and NGINX for load balancing, containerized with Docker and deployed on AWS EC2 to support fast reads under heavier traffic.

  • Node.js
  • Express.js
  • PostgreSQL
  • Redis
  • AWS EC2
  • Docker
  • NGINX

Compilation Video Generator - Auto-build hype clip compilations fast.

Python CLI that collects top Twitch clips for a game category, downloads the source media, and assembles a publish-ready montage. Supports creator tag overlays, intro and outro segments, and a streamlined export flow for producing YouTube-ready compilation videos.

  • Python
  • Beautiful Soup
  • Selenium
  • MoviePy
  • yt-dlp

Grid Epidemiology Demo - Outbreak simulator to explore herd effects.

Browser-based epidemiology sandbox that helps visualize a simple local-transmission outbreak (one patient zero, four-neighbor spread) and lets you adjust grid size, vaccination rate, and playback speed in real time. It also includes a vaccination sweep tool to compare coverage against final outbreak size—turning an abstract model into something you can feel and experiment with.

  • Epidemiology
  • Simulation
  • Computational Modeling
  • R

DVD Screen Saver - Nostalgic DVD bounce, revived.

Recreates the classic bouncing logo animation in the browser using canvas-based motion and collision logic. Focuses on smooth movement, edge-triggered color changes, and simple controls for resetting or re-aiming the animation.

  • JavaScript
  • HTML
  • CSS
  • Canvas

Atelier E-Commerce Front-End - A full product detail page for an online storefront.

React and Express product detail experience focused on core storefront interactions: style/size selection, zoomable galleries, related item comparisons, saved outfit lists, searchable Q&A, and ratings/reviews with sorting and breakdowns.

  • React
  • JavaScript
  • Express.js
  • Node.js
  • Webpack
  • Jest

Flyclicker - Event-driven desktop automation.

Python automation tool that monitors a defined screen region for visual motion/changes and triggers configurable clicks or keystrokes. Tunable thresholds, delays, and coordinates make it useful for repetitive personal workflows and UI testing.

  • Python
  • PyAutoGUI
  • OpenCV

Plate Math - Barbell plate loading, solved in seconds.

Mobile-friendly barbell calculator that converts a target weight into the exact plates needed per side and confirms the loaded total. Includes unit switching, percentage-based training loads, and a visual barbell layout to make setup faster in the gym.

  • React
  • JavaScript

Cancer Genomics - A live mutation atlas across cancers.

An interactive, cross-cancer view of how often key driver genes (e.g., TP53, KRAS, EGFR) appear across GDC cohorts. It pulls open-access cohort totals and mutated-case counts directly from the NCI Genomic Data Commons, then lets you switch between raw mutation counts and cohort-normalized mutation rates. You can click into a cohort to see its totals at a glance and pin a second gene to compare mutation patterns within the same project.

  • R
  • Cancer Genomics
  • Immunoinformatics
  • Genomic Data Commons

Titanic Survival Case Study - An interactive data story about the Titanic.

Starting from the cultural claim “women and children first,” it cleans the Titanic passenger dataset, visualizes survival rates by class, sex, and age, and uses chi-square comparisons against a null model to test whether observed outcomes deviate from chance. The page also lets you stress-test the conclusion by adjusting the child-age threshold and filtering by passenger class.

  • Python
  • Matplotlib
  • Seaborn
  • Data Analysis
  • Data Visualization