Software: Javascript [Turf.js, OpenLayers, Shapefile-JS], Nginx, Debian
Description: A browser-based tool for anonymizing sensitive point data using geographic masks. It’s easy to use and entirely client side, and also works as an excellent educational tool for learning about spatial data anonymization and web GIS.


Software: Python [Geopandas, OSMnx, Shapely, Networkx, Multiprocessing]
Description: A Python package for performing geographic masking. While it supports donut geomasking, it’s signature method is Street Masking, a method I designed that leverages Open Street Map data to make strong spatial data anonymization easier than ever. MaskMyPy also includes various functions for measuring privacy protection and information loss.

Strava Downloader

Software: Python [Flask, Requests, Psycopg2, Twilio, gevent], PostGIS, Nginx, Ubuntu
Description: As part of a research project into the route preferences of trail runners on Strava, I developed and deployed a server using Flask, Python, PostGIS, and Nginx that retrieves, processes, and updates geospatial user data from study participants’ Strava profiles via OAuth. I also added an SMS API so that project collaborators could easily check recruitment progress.

VANDIX Calculator

Software: Python [Geopandas, Pandas], Docker
Description: The Vancouver Area Neighborhood Deprivation Index (VANDIX) is a census-based measure of socioeconomic deprivation that has been used in academic studies across Canada. However, as a measure of relative deprivation, my colleagues and I found ourselves spending far too much time recalculating it for various geographies across Canada. To save time for everyone, I wrote a and Dockerized an interactive Python script such that anyone can quickly recalculate the VANDIX regardless of their preferred platform or development stack.