I lost most of an afternoon once to a column of addresses that would not standardize. Some had “ST” where I wanted “Street,” some wanted “Saint,” and a few coordinates were cut off at the wrong digit. I wrote a regex from scratch, then rewrote it twice. The work was tedious, the kind that drains […]
PostGIS vs GeoPandas vs DuckDB: The One Spatial SQL Engine That Runs On Your Laptop
Most geospatial tools were not built with spatial as a core feature. Spatial got bolted on later, and you can feel it the moment you try to run a real query. I ran the same four spatial queries across PostGIS, DuckDB, and a newer single node engine called SedonaDB. One of them did a spatial […]
GIS Analyst vs Spatial Analyst: The 3 Skills That Make the Jump
A GIS analyst and a spatial analyst can read like the same job. The descriptions overlap, the tools overlap, the maps look the same. They are not the same role. One is a technician role focused on creating and managing spatial data. The other is a diagnostic role focused on finding patterns and answering core […]
The Complete Modern GIS Roadmap
This is a post I have been meaning to write for a while now and it is probably going to be the most important thing I write this year. For the past few years I have published a number of different versions of this graphic that showcases the Modern GIS Landscape, at least as I […]
The Real Reason I Started Posting About Modern Geospatial (And Why a Roadmap Isn’t Enough)
In 2021, I hit “post” on one of my first LinkedIn updates. It was a simple breakdown of the top Python packages being downloaded in geospatial. Nothing fancy. Nothing viral. I scrolled all the way back recently just to look at it. At the time, I had no strategy, no content plan, and no idea […]


