Live demo Ask my football warehouse a question in plain English College + NFL since 2014 · Gemini · MCP · text-to-SQL — live app, opens in a new tab

Data & Analytics Engineer

Hi, I'm Dustin Cremascoli.

I build the pipelines, warehouses and visualizations that turn raw data into answers — and lately, the agents that let you just ask.

This is my professional site — and it is also the infrastructure it describes. Every application linked here runs on a single AWS EC2 instance I administer myself: the sites, the REST API, the visualizations, the analytics, and two warehouses built the same way — 9.2 million hourly weather observations, and every college football and NFL play since 2014 — each with a plain-English agent on top. Automated wherever it can be, and pointed at the things that interest me most — data engineering, the impact weather has on your body, football, and most importantly good food.

Portrait of Dustin Cremascoli
11.5 M
Weather observations and football plays, queried live
2
Text-to-SQL agents, each behind a read-only MCP server
8
Web applications on one self-managed EC2 host
4 hr
Automated weather pipeline cadence

Expertise

What I do

Data engineering

Designing and running relational and non-relational stores — PostgreSQL, MySQL, SQLite, MongoDB. Ingesting and transforming JSON, CSV, Parquet, XML and YAML, and using Python, SQL and Bash to optimize each stage of the ETL and EtLT process. Pipelines run unattended on AWS Lambda and EventBridge, land in a PostgreSQL instance I manage myself, and back themselves up to S3 nightly with alerting when a run fails.

  • PostgreSQL
  • DuckDB
  • AWS Lambda
  • EventBridge
  • S3
  • Parquet
  • postgres_fdw
Explore the REST API docs

Analytics & modeling

Harnessing Python and its standard and third-party libraries — Pandas, Polars, PySpark, SQLAlchemy — to build robust data models. Applying advanced SQL techniques (CTEs, window functions, CASE expressions) to answer the hard questions, and using the relevant statistical and aggregation methods to make valid inferences from the results.

  • Pandas
  • Polars
  • PySpark
  • SQLAlchemy
  • Window functions

AI & agents

Putting a language model in front of a warehouse without handing it the keys. An LLM agent reads the live schema and writes the PostgreSQL; a Model Context Protocol server executes it as a SELECT-only role behind a query guard and a statement timeout. The web tier holds no database credentials and builds no SQL, and a token budget that fails closed keeps a public demo from becoming an open tab. The same pattern now runs over two warehouses, weather and football, reusing one tested security model rather than inventing a second.

  • MCP
  • LangChain
  • Gemini
  • Text-to-SQL
  • Guardrails
Try the SQL Explorer

Delivery & platform

Shipping the work as software people can actually open. Flask, FastAPI, Streamlit, Dash and Bokeh applications self-hosted on a single EC2 instance behind nginx — TLS from Let's Encrypt and renewed on a timer, each app its own systemd unit with its own service user and memory ceiling. Every request is captured into PostgreSQL by an analytics pipeline and read back through a live dashboard.

  • nginx
  • systemd
  • Let's Encrypt
  • Flask
  • FastAPI
  • Streamlit
  • Dash
  • Bokeh
Visit the data viz site

Do you share a passion for finding the answers to the hard questions? Everything below is running right now, and nearly all of the source is public.

See some of my recent work

Portfolio

Recent work

Warehouse 01

Weather

9.2 million hourly observations from NOAA and Apple WeatherKit, loaded by unattended AWS pipelines into PostgreSQL on EC2.

Six interactive visualizations below

Fully Automated Data Pipeline

Apple WeatherKit REST API into a self-managed PostgreSQL database on AWS EC2, on a four-hour sequence, orchestrated with Lambda and EventBridge.

  • AWS Lambda
  • EventBridge
  • PostgreSQL
  • REST API

Automated Data Pipeline — NOAA

Hourly observations for 112 US airport stations in a self-managed PostgreSQL instance on AWS EC2, refreshed nightly from NOAA's GHCNh parquet files by Lambda and EventBridge.

  • NOAA GHCNh
  • AWS Lambda
  • PyArrow
  • PostgreSQL

RESTful APIs

Need the data from the two PostgreSQL databases that drive the data visualizations? This REST API hands it to you as JSON, with interactive documentation and an OpenAPI spec.

  • Flask
  • REST
  • JSON
  • PostgreSQL

Warehouse 02

Football play-by-play

Every FBS college football and NFL play since 2014, from ESPN, one row per play with the people identified by stable id.

Play-by-Play Explorer

Every play, filtered by league, side of the ball, team, player and outcome. A Dash app reading a DuckDB snapshot, with drill-down and CSV or Excel export.

  • Dash
  • DuckDB
  • Plotly
  • AG Grid

Play-by-Play Warehouse

ESPN's feed parsed into two fact tables over shared dimensions in PostgreSQL, mirrored to EC2 and split into per-league serving schemas, rebuilt weekly in season.

  • PostgreSQL
  • ESPN API
  • Parsing
  • Data modeling

Also built

Other builds

Smaller builds, each a different stack, each self-hosted on the same box.

If you would like to discuss any of these projects, have critical feedback, or need more information, please get in touch.

Get in touch with me

Contact

I can assist with your next critical data & analytics project.

I'm available for freelance work in the programming domain — no project too small. Pipelines and warehousing, analytics and modeling, or putting a language model in front of data you already have.