I'm a software engineer passionate about fast, interoperable geospatial data science.
I'm primarily developing the Apache Arrow, GeoArrow and GeoParquet ecosystems to make that a reality.
Python:
| Project | Role | Description | 
|---|---|---|
| obstore | author | The simplest, highest-throughput Python interface to S3, GCS & Azure Storage. | 
| lonboard | author | Python library for fast, interactive geospatial vector data visualization in Jupyter. | 
| arro3 | author | A minimal Python library to manage Apache Arrow data | 
| geoarrow-rust | author | A Python library implementing the GeoArrow specification with efficient spatial operations. | 
| geopolars | author | Geospatial extensions for the Polars DataFrame library. | 
| geoindex-rs | author | Fast, memory-efficient 2D spatial indexes for Python. | 
| suncalc-py | author | A Python port of suncalc.js for calculating sun position and sunlight phases. | 
| pymartini | author | A Cython port of Martini for fast RTIN terrain mesh generation. | 
| pydelatin | author | Python bindings to hmmfor fast terrain mesh generation. | 
| quantized-mesh-encoder | author | A fast Python Quantized Mesh encoder | 
| usgs-topo-tiler | author | Python package to read Web Mercator map tiles from USGS Historical Topographic Maps | 
| keplergl_cli | author | One-line geospatial data visualization using Kepler.gl | 
Rust:
| Project | Role | Description | 
|---|---|---|
| geoarrow-rs | author | A Rust implementation of the GeoArrow specification and bindings to GeoRust algorithms for efficient spatial operations on GeoArrow memory. | 
| wkb | author | Fast, pure-Rust reader and writer for Well-Known Binary geometries. | 
| wkt | core contributor | Rust read/write support for well-known text (WKT) | 
| geo-index | author | A Rust crate for packed, static, zero-copy spatial indexes. | 
| pyo3-arrow | author | Lightweight Apache Arrow integration for pyo3. | 
| pyo3-object_store | author | Integration between object_store and pyo3. | 
| arrow-wasm | author | Building block library for using Apache Arrow in Rust WebAssembly modules | 
| geopolars | author | Geospatial extensions for the Polars DataFrame library. | 
JavaScript:
| Project | Role | Description | 
|---|---|---|
| parquet-wasm | author | Rust-based WebAssembly bindings to read and write Apache Parquet data. | 
| @geoarrow/deck.gl-layers | author | deck.gl layers for rendering GeoArrow data. | 
| geoarrow-wasm | author | Efficient, vectorized geospatial operations in WebAssembly. | 
| arrow-js-ffi | author | Zero-copy reading of Arrow data from WebAssembly. | 
| literate-flatbush | documenter | Understanding Flatbush: a fast, elegant RTree implementation. | 
| geoarrow-js | author | TypeScript implementation of GeoArrow. | 
| deck.gl | contributor | WebGL2 powered visualization framework. | 
| deck.gl-raster | author | deck.gl layers and WebGL modules for client-side satellite imagery analysis. | 
Specifications:
| Project | Role | Description | 
|---|---|---|
| GeoArrow | core contributor | Specification for storing geospatial data in Apache Arrow. | 
| GeoParquet | core contributor | Specification for storing geospatial vector data (point, line, polygon) in Parquet. | 
Other:
| Project | Role | Description | 
|---|---|---|
| National Scenic Trails Guide | author | A website and data tools for exploring and navigating the Pacific Crest Trail. After hiking the PCT, this project was the core of my effort to transition to a career in geospatial software engineering. | 
| all-transit | author | Visualization of all transit routes in continental U.S. | 
| vscode-jupyter-python | author | Run automatically-inferred Python code blocks in the VS Code Jupyter extension |