Projects

Real apps, shipped. Each one taught me something I couldn't learn from a tutorial.

Main Projects

FeaturedFull Stack

Pokémon Team Builder

Build and save your Pokémon teams using real stats from PokéAPI. Users register, log in, and manage their teams — all persisted to a PostgreSQL database. The whole thing is deployed: React frontend on Vercel, Spring Boot API on AWS Elastic Beanstalk.

Along the way I debugged a real production issue — the AWS environment was IPv4-only, but Supabase's direct host is IPv6. Tracked it down and solved it by switching to the IPv4 session pooler. Not a tutorial problem.

JWT auth — register, login, protected routes
PokéAPI integration — live sprites, types, base stats
AWS Elastic Beanstalk deployment + IPv4/IPv6 networking debug
PostgreSQL via Supabase — full CRUD on teams
React 18TypeScriptTailwindSpring Boot 3.2Java 20PostgreSQLAWS EBJWT
FrontendSports Data

Dawg Sports

NFL and NBA sports site with live rankings, standings, and commentary. Built to explore real sports data APIs and get more reps with Vue.

VueJavaScriptCSS
FrontendCommunity

SSB League

Smash Bros league site for tracking tournament brackets and player profiles. Built for an actual community of players — a real brief, real stakeholders.

JavaScriptCSS

Other Work

AC-2-Market

Marketplace app — product listings, user auth, and a clean storefront UI.

JavaScriptNode
GitHub ↗