Skip to content

Systems

I design and run data systems: migrations out of legacy databases, geospatial warehouses on PostGIS, healthcare ETL on AWS Redshift and dbt, and a telemetry pipeline that ingests live radio signals.

Mostly Python and SQL, with Rust where the processing needs to be fast. The work below is either running in production or documented in full on this site.


Selected case study · 2026

ADS-B Aircraft Tracking & Geospatial Analysis

A self-hosted aircraft surveillance stack: live 1090 MHz transponder broadcasts decoded on a Raspberry Pi, ingested into PostGIS, enriched against a 520,000-aircraft reference index, and watched by a rule-based detection pipeline.

Ingest
An RTL-SDR receiver on 1090 MHz, decoded by dump1090 on a Raspberry Pi, with a Python service filing each message into the database. Over a million position messages so far.
Storage
PostgreSQL with PostGIS, enriched against a 520,000-row aircraft reference index. Materialized views pre-compute the heavy spatial queries so the dashboard reads stay fast.
Query & API
A FastAPI layer with twelve endpoints: statistics, positions, routes, receiver range, corridor density, hourly traffic, aircraft detail, and the detection feed.
Analysis
A rule-based detection pipeline on a two-minute cadence, six rules in production. It flagged a cluster of low-altitude military rotorcraft over Denver on its own.
Read the full case study →

Applied spatial · 2026

Denver Urban Tree Classification

18,272 tree crowns segmented from LiDAR and classified into five forestry management classes from free public imagery. Accuracy was checked with spatial blocks held out of training whole.

Read the full case study →

Implementation work

The engagements below share a shape. Each one started inside an unfamiliar source system: work out the schema and how the records actually relate, build the SQL and Python transformations, then move the data through staging, validation, and reconciliation until both sides agree. These were domains where a bad migration has consequences: fire-department incident records, healthcare data. The quality checks had to hold.

The storage layer changes between engagements. So far that has meant MySQL, MSSQL, and PostgreSQL on the relational side and Redshift in the warehouse. Learning the next system's particulars is part of the work.

Fire and public-safety data systems

2024 – present

NFIRS and hazard-data migration pipelines for multiple fire departments, PostGIS geospatial warehouses for emergency management, and an automated sanctions-tracking system correlating OFAC lists with AIS vessel data. Custom Python and Rust tools for high-performance processing.

PythonRustSQLPostgreSQLPostGISMySQLMSSQL

Geospatial validation and integration

2024

Data validation and integration for large-scale mapping platforms and emergency-response systems: FEMA flood maps, USGS data, and census boundaries brought into shared spatial infrastructure, with automated quality-control checks on incoming data.

PostGISGIS toolingData validation systems

Healthcare data pipelines

2023 – 2024

Healthcare ETL and analytics on AWS Redshift with dbt: automated data-validation protocols, quality frameworks built for healthcare data requirements, HIPAA-compliant staging environments, and reporting in QuickSight.

AWS RedshiftdbtSQLAWS QuickSightData modeling

contact@tomshanks.dev · github.com/Tom-Shanks