Turning data into decisions.
Building tools that make the complex simple.
I've led BI migrations, built self-serve analytics layers, and embedded AI automation into analytical workflows.
When I'm not at work I'm building things - a 24/7 personal AI assistant, a recipe and meal planning app, and whatever else seems worth making.
DBs · APIs · Events
dbt · SQL
Snowflake · BigQuery
Looker · Sigma · BI
Insight → Action
Data starts in its raw form - transactional databases, API responses, event streams, exported files. My job begins by understanding what exists, where it lives, and what it actually means to the business.
Transformation is where messy becomes meaningful. Modelling with dbt, testing assumptions in SQL, documenting lineage - so anyone downstream can trust what they're looking at.
Storage is about making the right data cheap and fast to query. Snowflake and BigQuery are the warehouses I reach for most, tuned to the workload.
Good visualization is a teaching act. Looker and Sigma give stakeholders the right level of depth, the right defaults, and the right edges to explore from.
The win isn't the dashboard. It's the decision it unblocks - and how quickly the next one comes.
Neo is a distributed AI system running 24/7 on a Mac Mini - four independent processes, one unified assistant.
# distributed AI system · 24/7 · mac mini Neo/ ├── Discord - 29 channels · Discord API ├── Core Runtime/ │ ├── Neo Claude - AI · Claude API │ ├── Watchdog - crash detection │ ├── Neo Tasks - 17 cron jobs │ └── Recipe API - REST · Node.js ├── AI Dispatch/ │ └── Claude -p - async subprocesses └── Output/ ├── GitHub - 1417 auto-commits ├── jtmeals.com - Cloudflare Tunnel └── joeldoesdata - Cloudflare Pages
Runs 24/7 on a Mac Mini, connected to Discord. Manages recipes, meal planning, shopping lists, real estate tracking, fitness logging, trip planning, and a daily news digest - all from a chat interface.
Built from scratch: Python · Claude API · Discord bot · Cron scheduling · GitHub auto-commit · Cloudflare Tunnel
Recipe browser and weekly meal planner. 70+ recipes with ratings, cost estimates, and filters. Built with vanilla HTML/CSS/JS, served via Cloudflare Tunnel from a local Node.js server.
Fully integrated with Neo - recipes are added by sharing a URL or photo in Discord.
NHL telemetry at team and player level. Big datasets, fun disguise - built to showcase analytics chops on real-world sports data. Expanding to NBA and NFL.
Nightly ingest · Python · Cloudflare Workers · vanilla chart stack
A self-updating data platform that publishes live metrics from my daily workflow. Nightly Python scripts aggregate commit activity and Claude API token usage across repos, committing fresh data that triggers an automated deploy.
GitHub Actions CI/CD · Cloudflare Workers · live charts update nightly without touching the site