Browse Projects
Everything I've built — web applications, data analysis, and software tools. All in Python, all built to a real standard.
AI Portfolio Assistant
WebI built a conversational AI assistant directly into my portfolio site. Recruiters and visitors can ask anything about my projects, skills, and background — and get grounded, cited answers in real time, powered by RAG (Retrieval-Augmented Generation) and Llama 3.3 70B via Groq.
AWS Lambda & Amazon Bedrock: Benchmarking TF-IDF, LSTM, and Zero-Shot LLM Sentiment Analysis
DataA full ML pipeline benchmarking TF-IDF + Logistic Regression, a Keras LSTM, and Claude Haiku via Amazon Bedrock on 50,000 IMDb reviews. The winning model is deployed live as a serverless REST API on AWS Lambda with a Flask frontend.
Amazon Price Tracker Automation
SoftwareScrapes an Amazon product page daily and sends a Gmail alert when the price drops below your target. Full cron lifecycle management (install, check, remove) built into an interactive terminal menu.
Android App Store Analysis
DataAnalyses 10,000+ Google Play Store apps with pandas and Plotly to answer real market questions: which categories are most competitive, how much a paid app earns, and how many downloads you give up by charging.
Birthday Email Bot
SoftwareAutomated birthday email sender that reads a CSV, checks today's date, picks a random letter template, and sends personalised Gmail messages. Runs locally or on a daily GitHub Actions cron schedule.
Blackjack
SoftwareTerminal Blackjack in Python — two versions side by side. Procedural course solution plus a full OOP rebuild with animated ASCII card UI, chip system, split, double down, insurance, and difficulty modes.
Boston House Price Analysis
DataMultivariable linear regression model predicting 1970s Boston house prices from 13 neighbourhood features, with residual diagnostics, log transformation, and a custom property valuation function.
CNN Food Classifier
DataI built a convolutional neural network that classifies food images into 101 categories using two-stage transfer learning with MobileNetV2. Upload any food photo and get instant top-3 predictions with confidence scores — live on Hugging Face Spaces.
Caesar Cipher
SoftwareEncrypts and decrypts messages using the Caesar cipher algorithm with variable shift input.
Coffee Machine — Command-Line Simulator
SoftwareA command-line coffee vending machine in Python. Two builds: the original procedural course exercise and a full OOP refactor with separated concerns, type hints, coin-based payments, ingredient refills, and persisted lifetime revenue.
College Major vs Your Salary — Data Exploration with Pandas
DataDoes picking STEM actually guarantee better earnings? This analysis of 1.2M graduate salaries across 51 majors says it's more complicated. STEM leads on starting salary — but growth rates are nearly identical to HASS, and Economics' earnings ceiling beats every engineering field.
Cookie Clicker Bot—Selenium
SoftwareSelenium bot that automates Cookie Clicker: clicks the cookie, hunts golden cookies, buys buildings by CPS payback ratio, and accepts runtime commands to pause, adjust the store-check interval, or stop.
Data Preprocessing Pipeline — NYC Airbnb
DataA production-grade, class-based data preprocessing pipeline built in Python on the NYC Airbnb Open Dataset (48,895 listings). Handles missing values, outliers, duplicates, encoding, and scaling — then generates five before/after diagnostic visualisations.
Flight Club
SoftwarePython CLI that scans Google Flights via SerpApi for round-trip deals from Madrid, fires WhatsApp and email alerts via Twilio and Gmail when a fare drops below your threshold. Destinations and price targets live in a Google Sheet via Sheety.
Google Trends Time Series Analysis
DataThree economic signals — Tesla, Bitcoin, and US unemployment — each paired with Google Trends search data across mismatched time frequencies and aligned by resampling. The 2020 COVID shock compressed months of unemployment pattern into weeks.
Gym Booking Bot
SoftwareSelenium bot that logs into a gym practice site, finds every Tuesday and Thursday 6 PM class, and books or joins the waitlist automatically. Handles network failures with a configurable retry wrapper. OOP advanced build with .env credentials and headless CI support.
Habit Tracker — Pixela
SoftwareCLI habit tracker that logs daily activity as graph pixels via the Pixela REST API. Interactive menu, OOP design with a PixelaClient class, and full CRUD support — POST, PUT, and DELETE — with input validation and graceful error handling.
Hangman
SoftwareTwo fully playable versions of the same game that together tell a clear story of growth. The project demonstrates not just Python fundamentals, but the ability to revisit earlier work with a critical eye and rebuild it at a significantly higher level.
Higher or Lower
SoftwareTerminal guessing game: pick which Instagram account has more followers. Includes a procedural course version and a fully rebuilt advanced version with ANSI colors, single-keypress input, and strict layer separation.
ISS Overhead Notifier
SoftwarePython bot that checks ISS position every 5 minutes via GitHub Actions and emails you when the station is overhead at night. Includes a course-original polling build and an OOP refactor with ISSClient and EmailNotifier classes.
Instagram Follower Bot
SoftwareA Selenium bot that logs into Instagram, scrolls a target account's followers modal, and mass-follows users. Includes a smart unfollow cleanup. Built with undetected-chromedriver to bypass bot detection.
Internet Speed Twitter Complaint Bot
SoftwareSelenium bot that measures your real internet speed via M-Lab, compares it against your ISP's promised speeds, and automatically posts a complaint tweet on Twitter/X if you're being shortchanged. No API keys needed, pure browser automation.
LEGO Dataset Analysis
DataLEGO nearly went bankrupt in 1998. This project joins six relational tables across 15,710 sets to measure exactly what changed — licensed share grew from 0% to 31.5%, average complexity 8×, and minifigure density 57% from 1970 to 2010.
Mail Merge
SoftwarePython automation script that generates personalized letters by injecting names into a template. Includes an OOP refactor with a pure-logic MailMerger class, centralized config, and a terminal menu to launch either build. Stdlib only.
Movie Budget Linear Regression Analysis
DataAcross 5,384 films from 1915–2018, a linear regression on budget vs. worldwide gross gives a slope of 3.12 (R²=55.77%) — every dollar of budget is associated with $3.12 in revenue, yet 37.28% of films still failed to recoup their costs.
Nobel Prize Data Analysis
DataExplores 120+ years of Nobel Prize records to uncover trends in gender, nationality, research institutions, and laureate age — using Plotly choropleth maps, Seaborn regression plots, and Matplotlib dual-axis charts.
NumPy NDArray Computation
DataNumPy treats images as numbers — a 768 × 1024 photograph is a 3D array of integers. This project works through ndarray operations from first principles: slicing, broadcasting, matrix multiplication, and pixel-level transforms like greyscale conversion and colour inversion.
NumPy vs Pandas Performance Benchmark
DataI benchmarked NumPy and Pandas across seven common operations at 100k, 1M, and 10M rows to find out exactly when each library wins — and by how much. The answer turned out to be more nuanced than I expected.
Number Guessing Game
SoftwareTerminal number guessing game in two versions — a procedural course build and a full OOP rebuild with layered architecture, typed enums, ANSI colours, and animated ASCII art.
Password Manager
SoftwareTkinter GUI that generates strong passwords, saves credentials to JSON, and retrieves them by website name. Ships as two builds: a procedural course version and a refactored OOP/MVC advanced version with injected callbacks and zero magic numbers.
Professional Portfolio Site
WebFull-stack Flask portfolio with a custom admin dashboard, PostgreSQL, a public REST API, media management, automated backups, and CI/CD deployment to Railway via GitHub Actions.
Programming Language Workforce Strategy — Data Analysis
DataStack Overflow lost 97.7% of its post volume since 2016 — and its momentum now anti-correlates with hiring demand. This project proves the signal is broken, then builds a four-source replacement index to answer which languages to hire for.
Quiz Game
SoftwareTerminal True/False trivia quiz built twice: a preserved course-state original and a full OOP rebuild with 3 game modes, typewriter animation, single-keypress input, and ANSI color UI. Standard library only.
Rain Alert SMS Bot
SoftwareFetches a 12-hour weather forecast from OpenWeatherMap and sends a WhatsApp or SMS alert via Twilio if rain is expected. Runs automatically every morning via GitHub Actions.
Ron Swanson Quotes App
SoftwareDesktop GUI built with tkinter that fetches random Ron Swanson quotes from a public REST API on every button click. Canvas background, image button, live text updates. No page reload, just pure Parks and Rec wisdom on demand.
Semmelweis Handwashing Data Analysis
DataRe-examination of Dr Semmelweis's 1861 hospital records from Vienna General Hospital (1841–1849). Mandatory handwashing in June 1846 cut the average monthly death rate from 10.5% to 5.0% — confirmed statistically at p ≈ 0.00025.
Snake Game
SoftwareClassic Snake built with Python's turtle module. Two versions: a course-faithful original and a modular OOP rebuild with welcome screen, game-over overlay, persistent high scores, and an ASCII art menu launcher.
Spotify Musical Time Machine
SoftwareCLI tool that scrapes Billboard Hot 100 for any historical date, fuzzy-matches all 100 songs against Spotify's catalogue, and creates a private playlist on your account in one command.
Stock Trading News Alert
SoftwareMonitors a stock's daily price change and fires WhatsApp alerts with the top 3 news headlines via Twilio whenever the move exceeds a configurable threshold.
Tinder Bot Automation
SoftwareSelenium bot that logs into Tinder via phone number auth and auto-swipes left on profiles. Built with undetected-chromedriver to bypass bot detection, OOP architecture, and a terminal menu launcher.
Workout Tracker
SoftwareLog workouts to Google Sheets using plain English. A local LLM parses your session, calories are calculated via the MET formula, and each exercise is written as a timestamped row — no manual entry.
Xavier's Blog
WebFull-stack Flask blog with user authentication, admin-only post management, rich-text comments, Gravatar avatars, and production deployment to Render with PostgreSQL.
Zillow Web Scraper & Form Bot
SoftwareAutomated data-entry pipeline: scrapes rental listings from a Zillow clone with BeautifulSoup, then drives Chrome via undetected-chromedriver to auto-fill and submit a Google Form for every address, price, and link found.
No projects found
No projects match the current filter.