Skip to content

Teaching & speaking

Learn GIS by building things.

I teach programming, web mapping, and spatial analysis through practical exercises. The aim is a workflow students can understand, explain, and adapt to their own work.

Inside the classroom

A concrete question, a useful result.

These examples come from my GIS certificate course exercises.

ArcGIS API for Python · Capstone

Explore urban tree canopy.

Connect to a GIS portal, query spatial data, work with a Spatially Enabled DataFrame, and bring the analysis into a web map. Students document their data sources, methods, assumptions, and limitations in a notebook they can reuse.

ArcGIS Online · Field-data exercises

Take a web map into the field.

Use Field Maps for a hydrant-inspection exercise and build a community walkability survey in Survey123. The lessons connect map design, data collection, sharing, and a web application built with Experience Builder.

San Francisco State University

Programming, web GIS, and applied analysis.

My teaching spans the GIS Certificate Program and Geography & Environment, with intensive professional courses and semester teaching.

GEOG 9039 · Spring 2026 · Two-day online course

ArcGIS API for Python

Connect Python to ArcGIS Online and Enterprise, query feature services, analyze spatial data, and create web maps. Six notebook exercises lead to an end-to-end urban tree-canopy capstone.

What students practice
  • Search portal content and inspect layers through the API.
  • Use pandas and Spatially Enabled DataFrames for analysis.
  • Geocode addresses and evaluate match quality.
  • Inventory portal content and design repeatable automation that avoids duplicate changes.
  • Document and share a complete analysis workflow.

GEOG 9038 · Spring 2026 · Two-day online course

Introduction to ArcGIS Online

Build and share web maps, style thematic data, use Arcade expressions, collect field observations, and create an application with Experience Builder. Six labs follow a practical web GIS workflow.

What students practice
  • Organize content and choose appropriate sharing settings.
  • Style map layers and use Arcade to work with their attributes.
  • Inspect hydrants with Field Maps and design a walkability survey in Survey123.
  • Bring maps and data together in Experience Builder.

GEOG 625/725 · Semester course · Online format

Programming for Geographic Information Science

A sequence from Python fundamentals to numerical and spatial analysis with NumPy, SciPy, pandas, Matplotlib, GeoPandas, and ArcPy. Students work in notebooks and a code editor, explore web mapping, and develop a documented final project.

GEOG 9021 · Two-day professional course · Online format

GIS Programming with Python

Python syntax, control flow, debugging, and ArcPy geoprocessing. Exercises progress through reading and updating records with cursors, building script tools, and working with tabular data in pandas.

GEOG 9029 · October 2019 · Two-day course

Processing GIS Data with ModelBuilder and Python

Use graphical models and Python scripts to connect geoprocessing steps, automate repetitive work, and make an analysis easier to repeat.

Applied professional course · Two-day online format

GIS for Cannabis Regulation

Apply ArcGIS Pro and ArcGIS Online to regulatory mapping in California, with exercises in coordinate systems, geocoding, geoprocessing, and ModelBuilder.

UC Davis Continuing and Professional Education · October 2021

Introduction to Open Source GIS with QGIS

I taught an introduction to desktop GIS through QGIS, covering spatial data formats, coordinate systems, attribute queries, geoprocessing, and cartographic design.

The course moved from exploring and styling data to publishing a web map, building a graphical processing model, and using the Python console.

From desktop project to shareable map

Exercises introduced vector, raster, and tabular data, SpatiaLite databases, plugins, and qgis2web. An independent project gave participants a way to bring those tools together around a geographic question.

See my spatial applications →

Writing as teaching

ArcPy and ArcGIS, Second Edition

I co-authored this practical guide with Silas Toms, published by Packt in 2017. It brings Python and ArcPy into the everyday work of geoprocessing, mapping, and GIS automation.

Workshops & speaking

Topics we could explore together.

I welcome conversations with teams, educators, and event organizers about practical sessions grounded in the work.

  • Maintainable GIS automation. Turning a working Python script into a workflow another person can run, inspect, and support.
  • AI in geographic work. Building spatial applications with AI assistance while keeping data checks, limitations, and human decisions visible.
  • Esri and open-source mapping. Choosing tools around the data, audience, deployment, and maintenance needs of a project.
  • Enterprise and emergency GIS. Lessons in architecture, interagency data, and leading technical teams.

Tell me about your audience and the problem you want the session to help them solve.

Discuss a workshop or talk →

Project screenshot