An end-to-end monthly ELT pipeline: Python and Prefect ingest the St. Louis Fed API into a GCS data lake, dbt models it into BigQuery, and Looker Studio surfaces it. Runs on a GCE VM with Docker; infrastructure in Terraform. Covered by pytest, ruff, terraform validate, and dbt parse in CI.
A three-stage scraping pipeline over Booking.com public listings: expand the sitemap index into per-country URL sets, scrape them with sharded parallel worker processes, then de-duplicate and bulk-load into SQL Server. Parser and loader are tested against recorded HTML fixtures, with ruff and pytest in CI.
End-to-end MLOps pipeline (MLOps Zoomcamp final project): XGBoost model tracked in MLflow, served behind a Flask API on AWS EC2, and drift-monitored with Evidently + Grafana. Orchestrated with Prefect, infrastructure with Terraform, with pytest and ruff enforced in CI.
Real-time flight duration prediction (Machine Learning Zoomcamp final project): a scikit-learn model scores live flight events streaming through Azure Event Hubs. Docker services, Terraform infrastructure, and a pytest suite run on every push by GitHub Actions.
Facial emotion detection (Machine Learning Zoomcamp final project): a CNN trained on FER2013, exported to TensorFlow Lite, and served through an Azure Function API with webhook-triggered redeployment. Preprocessing and inference are covered by pytest, with ruff and Terraform checks in CI.
Conversational financial analysis (LLM Zoomcamp final project): a Groq-hosted LLM answers natural-language questions over scraped SEC 13F, Dataroma, Finviz, and Yahoo Finance data via an SQL tool-calling loop, with a Chainlit chat UI backed by Cloud SQL on GCP. Tested with pytest and mypy in CI.
Interactive dashboards for Covid-19, movie shooting locations, and football player values by club, built with Tableau.