Portrait of Dustin Cremascoli

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.

I run everything linked here myself, from the server up — the sites, the REST API, the visualizations, the AI agents, four browser games, the analytics and the two warehouses behind them. It is pointed at what interests me most: data engineering, weather's effect on your body, sports data, good food, and a good game.

  • 8 web apps
  • 4 browser games
  • 2 text-to-SQL agents
  • 1 self-managed EC2 host

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 sports, reusing one tested security model rather than inventing a second.

  • MCP
  • LangChain
  • Gemini
  • Claude
  • Text-to-SQL
  • Guardrails
Try Ask Weather

Delivery & platform

Shipping the work as software people can actually open. Flask, FastAPI, Streamlit, Dash and Bokeh applications, and plain-JavaScript games, 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, most with a dedicated service user and a memory ceiling. Every request is captured into PostgreSQL by an analytics pipeline and read back through a live dashboard, and every site is measured rather than assumed: Lighthouse audits, security-header grades, and Core Web Vitals from real visitors.

  • nginx
  • systemd
  • Let's Encrypt
  • Flask
  • FastAPI
  • Streamlit
  • Dash
  • Bokeh
See the data visualizations

Recent work

Weather

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

Automated Data Pipeline — WeatherKit

Apple WeatherKit forecasts loaded into a self-managed PostgreSQL database on AWS EC2 every four hours, orchestrated by 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

Weather REST API

Historical observations and forecasts from the two PostgreSQL databases behind the visualizations, served as JSON with interactive documentation and an OpenAPI spec.

  • Flask
  • REST
  • JSON
  • PostgreSQL

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

Other builds

Smaller builds, each on a different stack.

  • PromptPace

    A typing-rhythm coach for writing AI prompts: burst speed, thinking pauses, backspacing and spelling, from every keystroke's timing.

    FastAPI · PostgreSQL · JavaScript Live app Docs

  • Recipe Web App

    The family recipe collection in Flask and PostgreSQL: search, print to PDF, or transcribe a recipe card from a photo with Claude or Gemini.

    Flask · PostgreSQL · Vision LLM Live app Docs

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

I take on freelance data work, large or small: pipelines and warehousing, analytics and modeling, or putting a language model in front of data you already have.