Matthew T. Perry
Software Engineer, Geospatial data and distributed systems.
Professional Experience
TileDB, Cambridge, MA (remote). Principal Software Engineer. June 2022 - present. As an engineer on the Geospatial team, I work to support the development of geospatial applications using TileDB
- Testing TileDB integrations with GDAL, OGR, and PDAL and related Python wrapper libraries.
- Writing web services in Golang to serve TileDB data through standard geospatial APIs.
- Building distributed systems for processing satellite, lidar and geometry datasets on TileDB Cloud.
Descartes Labs, Santa Fe, NM (remote). Senior Software Engineer. Mar 2021 - Feb 2022. As a senior engineer on the Descartes Labs Platform team, my roles include:
- Bugfixes, QA testing, and customer support for our web services and open source clients, primarily in Python and Rust.
- Lead the design and implementation of Tables, our spatial-relational data management service backed by PostGIS.
- Implemented monitoring and observability tools, replication and load balancing for high-traffic Postgresql instances
- Managed a petabyte-scale distributed system using Kubernetes on GCP and AWS.
Descartes Labs, Santa Fe, NM (remote). Senior Software Engineer. Mar 2021 - present. As a senior engineer on the Descartes Labs Platform team, my roles include:
- Bugfixes, QA testing, and customer support for our web services and open source clients, primarily in Python and Rust.
- Lead the design and implementation of Tables, our spatial-relational data management service backed by PostGIS.
- Implemented monitoring and observability tools, replication and load balancing for high-traffic Postgresql instances
- Managed a petabyte-scale distributed system using Kubernetes on GCP and AWS.
Aurora Insight, Denver, CO (hybrid remote). Senior Software Engineer. Aug 2019 - Aug 2020. A remote sensing approach to mapping wireless network infrastructure. My roles included:
- Implemented a self-serve application platform on AWS to facilitate rapid development of internal data science applications.
- Implemented a large scale data processing pipeline to analyze raw data and store the results in our data warehouse
- Developed a digital invbentory system to track remotely sensed data assets and index them for easy access
- Tested and refined our digital signal processing libraries and built a CI/CD system to increase quality control and development speed.
Timescale, New York, NY (remote). Solutions Engineer. Jan 2021 - July 2021. Customer-facing role to increase adoption of TimescaleDB, a time series database based on Postgresql.
- Pre-sales engineering to understand customer requirements, provide on-site support for proof-of-concept projects.
- Developer relations, blogging, presentations, and regular office hours to provide community support.
- Implemented web applications to demonstrate the integration of TimescaleDB with PostGIS to create a robust spatial-temporal time series database.
Mapbox, San Fransisco, CA (remote). Senior Software Engineer. Oct 2015 - present. As a member of the Satellite team, a small team responsible for building and maintaining Pixel Monster (PXM), our distributed cloud processing service for satellite imagery and aerial photography. My roles included:
- Developing Python modules for image processing tasks; histogram matching, cloud detection, best-pixel mosaicing
- Configuring AWS cloud services (S3, ECS, EC2, SQS, Elasticache, Cloudformation)
- Building and deploying applications with Docker containers
- Code profiling and debugging to reduce performance bottlenecks
- Dialing our github workflows for better technical communication
- Future-proofing our codebase (Python 3 compatibility, security updates)
Ecotrust, Portland, OR. Senior Applications Developer. Apr 2011 – Jan 2015. Lead software developer for Ecotrust. Responsible for developing software tools for data-driven decisions and solutions for environmental and economic prosperity.
- Managed a team of four programmers and served as technical lead on over a dozen projects including:
- Madrona: our signature framework for collaborative geospatial decision support tools
- Forest Scenario Planner: a public tool to analyze economic and environmental impacts of alternative timber management strategies.
- Prioritization Tool: a framework using simulated annealing for optimizing conservation resources
- Worked closely with our GIS team to build ArcPy scripting, C# .NET and ArcGIS Server capacity
- Streamlined release procedures through devops automation, test-driven development, virtual machines and continuous integration.
- Worked with current and prospective clients to develop specifications, timelines and project budgets
MarineMap Consortium, Santa Barbara, CA (remote). Geospatial Web Application Developer. Oct 2009 – Mar 2011. Responsible for developing web-based spatial decision support tools for collaborative, science-based marine planning.
- Developed new software features for 3-dimensional browser-based maps
- Created full-coverage automated testing suite.
- Worked in Python using the Django web framework for server side features.
- Worked with Javascript and Google Earth API for client side user interface.
- Maintained documentation (technical and end-user).
- Integrated spatially-explicit models into common interface and data model.
Geosyntec Consultants, Santa Barbara, CA. GIS Analyst/Manager. Jan 2007 – Oct 2009. Responsible for managing the GIS and Data Management department of an environmental consulting firm. Primary duties involve coordinating the management, visualization and analysis of environmental data.
- Managed and trained a team of three technical staff members.
- Served on the company-wide GIS and Database Action Group Steering Committee.
- Created Advanced GIS Workshop materials for internal training.
- Developed cartographic products using ArcMap.
- Web-based application development with MapServer.
- Automated procedures for data management/processing with VB, C#, Python, GDAL.
- Databases design and implementation with SQLServer and MS Access.
- LIDAR terrain analysis for hydrologic modeling with GRASS and ArcGIS Spatial Analyst.
- Remote sensing to derive land use and hydrologic model inputs.
- Geostatistical evaluation of soil and water sample data.
- Statistical summaries of analytical chemical data.
National Center for Ecological Analysis and Synthesis, Santa Barbara, CA. GIS Analyst and Software Engineer. Dec 2005 – Jan 2007. Primary duties included developing spatial models for evaluating land-based threats to marine ecosystems and developing metadata software.
- Lead developer of metadata software providing spatial functionality to an ecological data repository.
- Developed GIS models to estimate sedimentation, nutrient and pesticide loading for major river basins.
- Organized and processed global datasets in support of marine ecology study.
- Optimized raster processing algorithms in various software packages.
HostGIS, Arcata, CA. GIS Developer/Consultant. Mar 2003 – Dec 2005. Lead GIS developer for web GIS hosting and consulting company.
- Programmed PHP, Python, Mapserver and Javascript applications for web-based data processing, collaborative editing and visualization.
- Developed MWW, a reusable web-based javascript library for interactive web mapping.
- Integrated spatial functionality into existing software systems.
- Processed legacy datasets from a variety of sources into usable GIS formats.
- Geospatial database design and implementation with PostGIS.
Humboldt State University, Arcata, CA. Graduate Research/Teaching Assistant. Jan 2002 – May 2005. As a graduate student at HSU, assisted with various research projects and taught four semesters of GIS lab courses.
- Designed system for real-time data, web-based query and visualization of water quality sensors in Humboldt Bay.
- Taught and developed materials for GIS lab courses for skill levels ranging from introductory to advanced.
- Created an extensive, web-based spatial data library for the Klamath River Basin.
- Vegetation mapping using field surveys, remote sensing and aerial photo analysis.
- Digitized historical data from hardcopy maps and aerial photographs.
National Institute for Personal Finance Employee Education, Blacksburg, VA. Research Assistant. Jan 1999 – July 2000.
Our survey research team studied the detrimental impacts of financial stress in the workplace and quantified return on investment for educating employees on financial matters.
- Managed survey databases, performed statistical analysis using SPSS and SAS.
- Edited newsletter articles, designed grant proposals, and drafted surveys for research projects.
Education
Humboldt State University. Arcata, CA. M.S., Natural Resource Planning and Interpretation, 2005. Thesis topic: Design and Evaluation of a Web Mapping Service for the Klamath River Basin.
Humboldt State University. Arcata, CA. Certificate of Study, Geographic Information Systems and Remote Sensing. 2004.
Virginia Tech. Blacksburg, VA. B.S., Psychology/Statistics, 2000. Emphasis: Survey research design in industrial/organization psychology
Technical Skills
- Geospatial: QGIS, GDAL/OGR, PostGIS, GeoPandas, Raster, Fiona, Shapely, Mapnik
- Programming: Python, Javascript, C/C++, Bash, Clojure, SQL
- Front-end: D3.js, React, Leaflet, Mapbox GLJS, OpenLayers, Angular2
- Back-end: Nginx, Django, Flask
- Modeling: SciPy, Scikit-Learn, Numpy, EVS/MVS, FVS, Marxan
- Database: MS Access, Postgresql/PostGIS, Redis, SQLite
- IT: Ansible, Linux, Mac OSX, Docker, Amazon AWS
- Statistics: R, Machine Learning, SALib, Bayesian inference, Discrete Optimization
- Domain Knowldege: Forestry (optimization, growth and yield), Ecology, Climate
Software Projects (Lead Developer)
- simanneal
- harvestscheduler
- growth-yield-batch
- pyimpute
- rasterstats
- madrona
- python-mbtiles
- leaflet-simple-csv
Software Projects (Contributor)
- geopandas: Spatial joins and intersections in python data frames.
- GDAL: Original author of gdaldem.
- Openlayers: UTFGrid support for web mapping client.
- Tilestache: Redis caching backend.
Public Applications
- Gravel Mine Restoration DST: Site evaluation using bayseian belief networks.
- Forest Planner: Visualize alternative forest management strategies.
- Priorities Tool: Optimization of multi-objective spatial planning.
- Madrona: Framework for building web based spatial decision support tools.
- MarineMap: Collaborative tools for marine spatial planning.
- Global marine threats: research project quantifying the human threats to marine ecosystems.
Presentations
Matthew T. Perry. Spatial-Temporal Prediction of Climate Change Impacts. Free and Open Source Software for Geospatial Conference, 2014, Portland, OR.
Matthew T. Perry. Spatial-Temporal Prediction of Climate Change Impacts. Scientific Python Conference. 2014, Austin, TX.
Matthew T. Perry. Introduction to Open Source GIS. Western Forestry and Conservation Association, 2012 Annual Field Technology Conference. Portland, OR, Sept 2012.
Matthew T. Perry, Tim Welch. Introducing the Madrona framework. Oregon Central Coast Web Mapping Meeting. Newport, OR, May 2012.
Matthew T. Perry, Doug Renwick. Online GIS, Internet Mapping: Where it is and where it’s going next. CalGIS Conference, Santa Barbara, CA, 2006.
Matthew T. Perry, Gregor Mosheh. Web-assisted GIS hosting services. FOSS GIS Conference, Minneapolis, MN, 2005.
Matthew T. Perry, Doug Renwick. Integrating Mapserver with Online Data Services. Open-Source GIS Conference, Ottawa, ON, 2004.
Matthew T. Perry, Steven J. Steinberg. Trinity River Information Network. Mapserver Conference, Minneapolis, MN, 2003.
Publications
David Diaz, Matthew Perry, Jocelyn Tutak, Ryan Hodges, Mike Mertens. (2014). Potential climate change impacts on management outcomes for western Oregon BLM forestlands simulated using Climate-FVS. Report to Bureau of Land Management. Ecotrust, Portland, OR.
David Diaz, Matthew Perry, Ryan Hodges, Mike Mertens, Jocelyn Tutak. (2014). Projected Changes in Habitat Suitability for Tree Species in Western Oregon due to Climate Change. Report to Bureau of Land Management. Ecotrust, Portland, OR.
Benjamin S. Halpern, Colin M. Ebert, Carrie V. Kappel, Elizabeth M.P. Madin, Fiorenza Micheli, Matthew Perry, Kimberly A. Selkoe, Shaun Walbridge (2009). Global priority areas for incorporating land-sea connections in marine conservation. Conservation Letters, vol. 2, issue 4.
Benjamin S. Halpern, Shaun Walbridge, Kimberly A. Selkoe, Carrie V. Kappel, Fiorenza Micheli, Caterina DAgrosa, John F. Bruno, Kenneth S. Casey, Colin Ebert, Helen E. Fox, Rod Fujita, Dennis Heinemann, Hunter S. Lenihan, Elizabeth M.P. Madin, Matthew T. Perry, Elizabeth R. Selig, Mark Spalding, Robert Steneck, Reg Watson (2008). A global map of human impact on marine ecosystems. Science, vol. 319
Matthew T. Perry. Design and Evaluation of a Web Mapping Service for the Klamath River Basin. Master’s Thesis, Humboldt State University, August 2005.
Awards
-
Forest Planner. 2014 Winner: Innovative Tool Award. Open Planning Tools Group.
-
MarineMap. 2010 Winner: Innovation in Technology and Environmental Conflict Resolution Award. U.S. Institute for Environmental Conflict Resolution.
Other Experience
- Writer for perrygeo.com - a blog about open source GIS and data science.