June 17, 2026
May 25, 2026
Version Control Reduces Risk
April 24, 2026
I Let an AI Write My GIS Workflow. Here's What Broke.
April 24, 2026
From Prompt to Production: Making AI-Generated Code Actually Usable
April 15, 2026
Define Success Before the System Does
April 14, 2026
Avoiding the Dead Workplace: Keeping Human Ownership Alive in an AI-Heavy Workflow
March 1, 2026
Trust layers and value layers in agentic engineering
February 24, 2026
Thinking like a programmer
February 17, 2026
Demystifying Agent Jargon So You Can Actually Use This Stuff
February 16, 2026
Toward a Spatial Workbench Ecosystem
February 11, 2026
Removing Work Is the Real AI Leverage
January 30, 2026
Vibe coding CamReview: a trail cam app I actually use
December 29, 2025
From GIS Projects to Data Pipelines
December 16, 2025
A GIS Analyst From the Future
December 12, 2025
Vibe Coding, Bike Shedding, and the Real Work
May 15, 2025
How the Blog Is Built
April 23, 2025
Too Easy to Start - AI Tools Shifted My Bottleneck from Building to Shipping
March 25, 2025
Adapt or Get Left Behind - The New AI Skillset
March 11, 2025
The Evolution of GIS Careers in the Age of Advanced AI
February 17, 2025
High-Leverage Focus - Maximizing Impact
October 9, 2024
Creating a Virtual Numpad with AutoHotKey
September 27, 2024
Considerations for Spatial Data That Doesn't Fit in Memory
September 9, 2024
AI enhanced GP tools in ArcGIS Pro
September 5, 2024
Empowering Geospatial Workflows with Generative AI
August 21, 2024
Field Mapping Frustrations in GIS - Automating Spatial Joins
August 20, 2024
Sharing Python Tools - Practical Solutions and Considerations
August 18, 2024
What are Vector Databases?
August 13, 2024
Open source alternatives to ArcPy
August 2, 2024
About me
August 1, 2024
Prioritizing Health as a Knowledge Worker
July 1, 2024