Pixel-art illustration of a tornado in a field

TIV-archive

Next.js TypeScript MapLibre GL Supabase/PostGIS Vercel

An interactive map of historic U.S. tornadoes — search a city, see every twister within range, and click one for its EF rating, path length, fatalities, and an animated path. A timeline slider replays tornado history using NOAA/SPC data.

LetterboxdWrapped logo — three overlapping circles with a rewind icon

LetterboxdWrapped

React Python TMDB API

A personalized movie analytics and recommendation platform built from Letterboxd viewing and review data.

Grid of Filmlogical Instagram post covers

Filmlogical

Instagram Photoshop Premiere Pro

A film publication I founded and grew to 1.2k+ followers, publishing original film criticism and editorial content.

Pipeline icon — a cube with a rising arrow graph

Venture Pipeline Tracker

Airtable AI JavaScript

AI-powered internal sourcing platform with dashboards and investment pipeline analytics for venture funds.

The clover logo used across this site

This Website

HTML CSS JavaScript

The site you're looking at!

skills

languages

Java Python TypeScript C/C++ PHP/Hack OCaml PostgreSQL JavaScript HTML/CSS R

frameworks

Next.js React GraphQL Node.js Django FastAPI Docker deck.gl

tools

Git kdb+/q pandas Tableau PostgreSQL/PostGIS pgvector Supabase Neon Vercel