Live demo Ask my weather warehouse a question in plain English MCP · LangChain · Gemini · 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 a text-to-SQL agent sitting on top of a 9.2-million-row weather warehouse. Open source throughout, automated wherever it can be, and pointed at the things that interest me most — data engineering, the impact weather has on your body, and most importantly good food.

Portrait of Dustin Cremascoli
9.2 M
Hourly weather observations, queried live
5
Web applications on one self-managed EC2 host
4 hr
Automated 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
  • 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.

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

Delivery & platform

Shipping the work as software people can actually open. Flask, Streamlit 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
  • Streamlit
  • 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 the source is public.

See some of my recent work

Portfolio

Recent work

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

Recipe Web App

Full-stack web application built with Flask, Python and PostgreSQL — self-hosted on EC2 behind nginx.

  • Flask
  • Python
  • PostgreSQL
  • Full-stack

Certification Prep GUI

Two desktop apps — one for note-taking, one for studying — built to aid in passing the PCPP1 certification exam.

  • Python
  • Tkinter
  • Desktop

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.