Projects
GitHub
Stats and top languages (updated daily via GitHub Actions). Click any card to open the repo or profile.
Pinned repos
Cards not loading? View my GitHub profile.
OmniTrackr
A full-stack tracking platform built to demonstrate production-style backend architecture beyond basic CRUD.
Problem
I wanted a personal project that showed I could design and operate a production-style backend: secure auth, validation, rate limiting, and real-world concerns like email and image handling; not just a tutorial CRUD app.
Architecture
Browser (SPA)
↓
FastAPI (Python)
├── JWT auth (python-jose)
├── SlowAPI rate limiting
├── FastAPI-Mail
├── Pillow (images)
└── SQLAlchemy ORM
↓
PostgreSQL (Render)
Backend: FastAPI, SQLAlchemy, PostgreSQL, JWT (python-jose), bcrypt, Pydantic, FastAPI-Mail, Pillow, SlowAPI.
Frontend: Vanilla JavaScript SPA, responsive CSS, dark mode.
Deployment: Render (Web service + managed PostgreSQL).
Key Decisions
- FastAPI over Django — Async-first, modern OpenAPI docs, and a clean fit for API-focused work.
- Vanilla JS SPA over React — Kept the frontend minimal to showcase a clean API boundary and avoid framework lock-in.
- Render for PostgreSQL — Managed DB, simple deploys, and one less infra piece to run myself.
Production Metrics
90+ daily users with 99.9% uptime on Render.
Lessons Learned
- Pydantic validation caught edge cases and bad payloads early; investing in schemas paid off from day one.
- Rate limiting (SlowAPI) was essential from launch; avoided abuse and kept the service stable.
- Bcrypt cost tuning matters at scale; default cost was fine for signup volume but had to be revisited as traffic grew.
Links
GitHub Repository · Live Deployment
Price Watchdogs
Tech Stack
Backend: FastAPI (Python), SQLAlchemy, Alembic (migrations), Pydantic, PostgreSQL.
Frontend: Next.js 14+ (App Router), TypeScript, Tailwind CSS.
Infrastructure: Docker Compose (local dev), Render (production), render.yaml IaC.
Overview
A full-stack web app that monitors SaaS pricing pages, subscription terms, and plan structures. It detects meaningful changes and alerts users before they get surprised by higher bills. Built with a FastAPI backend and a Next.js TypeScript frontend, backed by PostgreSQL for snapshot storage and change event tracking.
Key Engineering Highlights
- Content snapshot engine with hash-based change detection across monitored pricing pages
- Change classification system to distinguish meaningful pricing shifts from cosmetic edits
- User alert pipeline: detect change, classify it, notify the user
- Alembic-managed database migrations for safe schema evolution
- Dockerized local development with Docker Compose (PostgreSQL + backend + frontend)
- Render deployment with Infrastructure as Code (render.yaml) and automatic migration on startup
- 129 commits across backend and frontend
Links
GitHub Repository
Live Deployment
Nebula
Tech Stack
Backend: Python 3.7+, discord.py, aiohttp, AMP API (ampapi), psutil.
Infrastructure: AMP (Application Management Panel), localhost game server hosting.
Overview
A Discord bot for managing 12+ locally hosted game servers through the AMP API. Nebula provides a unified command interface to start, stop, restart, and query server status directly from Discord, eliminating the need to SSH or open management panels for routine operations.
Key Engineering Highlights
- Dynamic command generation from configuration, adding a new game requires zero code changes
- AMP API client with automatic session management and token refresh
- Batch script execution and process tracking for servers outside of AMP
- Per-user rate limiting (3 commands / 60 seconds) to prevent abuse
- Channel-restricted command access for server security
- Rich Discord embed responses for server info (IP, port, status, password)
- Rotating file logs for debugging and monitoring
Supported Games
ARK, Terraria (tModLoader), Minecraft (Vanilla + ATM10), Satisfactory, Project Zomboid, Palworld, Enshrouded, Seven Days to Die, Icarus, Necesse, BeamNG, Sons of the Forest.
Links
GitHub Repository
Portfolio Site (This Site)
Tech Stack
Frontend: Static HTML, CSS, vanilla JavaScript.
Hosting: AWS S3, CloudFront (CDN + HTTPS), Route 53, ACM.
CI/CD: GitHub Actions auto-deploy on push to main.
Overview
A static portfolio site built from scratch and deployed to AWS. Demonstrates infrastructure knowledge including S3 static hosting with private bucket access, CloudFront CDN with Origin Access Control, automated deploys via GitHub Actions, and SEO optimization with structured data.