[back]
selected work samples (mostly writing)
This page has some selected work samples. They’re mostly writing samples, but I’ve also included some tutorials and projects. It is not everything I’ve ever done, just some things I want to highlight.
Notes:
- I’ve included articles, tutorials, and projects.
- I also have a talks & workshops page with… talks and workshops.
- The projects section includes programming projects with significant writing content, usually in the README.
- Some tutorials have accompanying videos/slides.
- Some of these docs are old and refer to things that don’t work anymore. I’ve included approximate publish dates to highlight that context.
articles
- 2025 Loop agent - Braintrust documentation - article on Braintrust’s AI assistant
- 2024 Improve Datatable Performance - Salesforce Lightning Web Components Developer Guide - best practices for using datatable web components
- 2022 Quick Start: Salesforce Functions - Salesforce Functions documentation - quickstart guide for setting up Salesforce Functions (see documentation projects below for more information on the Salesforce Functions documentation project)
- 2021 Monitoring Heroku Apps - Heroku Dev Center - best practices article for setting up logging and monitoring for Heroku applications
- 2019 Vector Formats and Sources - Geospatial Information Science and Technology Body of Knowledge - peer-reviewed textbook chapter on geospatial vector data formats
- 2018 - How the internet works - my own website - an article explaining how the internet works
- 2016 512 map tiles - Mapbox blog - blog post explaining web map infrastructure upon moving to GL-based rendering
- 2016 How Mapbox Works [link to internet archive snapshot] - Mapbox documentation - introduction to the Mapbox product and APIs
tutorials
- 2019 Make Your Data Work for You with CSV Parsing - Glitch blog - tutorial on using d3-dsv for parsing and serializing CSV files
- note: Glitch sunsetted in 2025. This blog post has an accompanying project which I will deploy elsewhere and link to here.
- This was part of a series of “challenges” where we created an app and asked users to create their own by “remixing” the app and making changes. For each challenge we created an app, wrote a blog post, and did a live stream showing how the app works and how to customize it. The accompanying video shows the app in action.
- 2017 Analyze data with Turf.js and Mapbox GL JS - Mapbox documentation - step-by-step tutorial on running spatial analysis with Turf.js and displaying results on a map using Mapbox GL JS
- 2016 Make a choropleth map, part 1: create a style - Mapbox documentation - step-by-step tutorial on making a choropleth map using Mapbox Studio
- 2016 Make a choropleth map, part 2: add interactivity - Mapbox documentation - step-by-step tutorial on adding interactivity to your choropleth map in Mapbox Studio
- 2015 Manage GitHub notification messages in Gmail with Google Apps Scripts - personal blog - step-by-step tutorial on using GitHub’s custom headers to create dynamic filters in Gmail using a Google Apps script
- 2015 Creating rainbow borders with Mapbox Studio Classic - Mapbox blog - step-by-step tutorial on custom styling with Mapbox Studio Classic
projects
- 2026 Hazard Viewer - a deployed multiservice web app using FastAPI, PostGIS, and the Claude API. The README documents the architecture, deployment process, and design tradeoffs.
- 2022 Salesforce Functions documentation
- Spearheaded and published documentation for the Salesforce Functions product
- This was the first documentation site at Salesforce using the new “Salesforce Docs” framework, using Markdown and a git-based workflow
- The Get started page was used as a template for new “developer centers” across the Salesforce developer documentation.
- 2016 Mapbox API documentation
- Organized and rewritten documentation for the Mapbox APIs
- Built using docbox, an open-source REST API documentation system designed and built in-house at Mapbox by Tom MacWright and myself
- Blog: Meet the new Mapbox API documentation
- Mapbox API documentation site [link to internet archive snapshot]
- “Testing: It’s not just for code anymore” - talk at the Write the Docs 2017 conference in Portland, Oregon