Ryan Thomas — Data / Analytics Engineer

I build the analytics, reporting and AI layer at the National Fish and Wildlife Foundation — two years there, after four years in network operations at Cisco.

dbt · BigQuery · Terraform · Python · SQL · GCP · AWS

Remote · US Eastern · open to analytics / data engineering roles

Production data platforms

Ingestion through to a modeled, served layer — provisioned as code and running on a schedule, not by hand.

Personal Data Lake

A personal data lake and knowledge graph on Google Cloud, provisioned end-to-end in Terraform and deployed from GitHub Actions on every push.

3 ingestion pipelines · 11 GCP services · BigQuery raw → knowledge · daily Cloud Scheduler runs · 38 commits

Terraform · BigQuery · Cloud Run · dlt · GraphRAG · Workload Identity Federation · GitHub Actions

`terraform apply` takes it from an empty project to a running lake — IAM, secrets and schedulers included. No console clicking.

Agent-facing data interfaces

Governed, read-constrained interfaces that let a language model query a data store without being handed the keys to it.

pantry-mcp

An MCP server over a normalized SQLite database of recipes, inventory and cooking decisions. Ranks what you've already saved by how little you'd have to buy.

18 MCP tools · 8-table normalized schema · 7 test modules · CI on every push · MIT

Python · SQLite · MCP · pytest · GitHub Actions

The interesting part isn't recipes — it's unit normalization and ingredient identity, which is where this class of tool quietly fails.

learning-mcp

A tutor that can't skip ahead. It decomposes a topic into a prerequisite graph and refuses to release the next element until you've demonstrated mastery of the ones it depends on.

7-table prerequisite graph · SM-2 spaced repetition · 5 test modules · Docker · CI · MIT

Python · SQLite · MCP · SM-2 · Docker · GitHub Actions

Sequencing stops being a polite request in a prompt and becomes a data dependency the server enforces.

Analytics enablement & tooling

Teaching the stack, and building the tool when the off-the-shelf one couldn't express the query.

dbt-llm-analytics

A free hands-on course teaching dbt on real National Park Service biodiversity data, plus a read-only MCP server for querying the finished warehouse in plain English.

5,824 species · 23,000 observations · 4 staging + 3 mart models · 6-step interactive lab · MIT

dbt · DuckDB · Python · MCP · Killercoda

Real public data with real messiness, not a toy `jaffle_shop` clone — and the lab runs in a browser with nothing to install.

jobscout

A crawler that reads companies' own applicant tracking systems rather than aggregators, then filters on what actually disqualifies a role — seniority, geography, and stated years of experience.

7 ATS platforms · 438 live boards · 27,140 postings · zero dependencies

Python 3.11 standard library only — no requests, no scraper, no framework

Most job boards are a thin view over the same handful of ATS APIs. Read those directly and every row is a live posting with a verifiable requirement.

Experience

Enterprise Reporting Specialist · National Fish and Wildlife Foundation Jul 2024 – Present
High Touch Operations Manager · Cisco Systems Jul 2020 – Jun 2024
Analytics Developer Intern · Charter Communications May 2019 – Aug 2019

Education

B.S. Statistics & Analytics, Second Major in Computer Science
University of North Carolina at Chapel Hill · May 2020