Programmer, designer, and journalist in Austin, Texas.

Currently working as a senior software engineer at Q2eBanking.

Design and development

Develop consumer and back-office financial technology products for Q2eBanking, including personal financial management and person-to-person payments.

Tools: Docker, Linux, PostgreSQL, Python, SQL Server
Election app

Live election results for Louisiana using precinct-level maps. This requires aggregating precinct GIS files from state and parish offices before correlating the maps with precinct-level results from the Secretary of State. On election night, data processing scripts send results to a front end for constantly updating tables and maps.

Tools: AWS S3, Bash, D3.js, GDAL/ogr2ogr, JavaScript, Leaflet, Make, Mapbox, Python, QGIS, React, TopoJSON
Oklahoma poverty map

Examining poverty rates across Oklahoma’s census tracts.

Tools: Carto, QGIS
Oklahoma election results

Election results analysis for Oklahoma’s presidential race and state questions.

Tools: AWS S3, Bash, D3.js, GDAL/ogr2ogr, JavaScript, Make, Pandas, Python, TopoJSON
Payment processing
Support Us

Combined Stripe payment processing and Salesforce donor tracking for a donation system for The Lens. The Lens used this page to accept online donations from 2016 to 2019.

Tools: JavaScript, Linux, Nginx, Pandas, Python, Salesforce, SQL, SSL, Stripe
Missing Home

This project combined text, photos and interactive design to present the stories of planned and unexpected demolitions in New Orleans following Hurricane Katrina. The project drew on FEMA databases, archived photos and on-the-ground reporting.

Tools: AWS S3, JavaScript, Jinja, Leaflet, Make, Mapbox, Python
Property sales tracker

A web scraper that downloads New Orleans property sales and a web application that makes the archive searchable and visible on a map.

Tools: Flask, JavaScript, Leaflet, PostGIS, PostgreSQL, Python, SQLAlchemy, Selenium
Government contracts tracker

A web scraper that downloads the City of New Orleans’ contracts and a web application that makes the archive searchable.

Tools: AWS S3, DocumentCloud, Flask, JavaScript, PostgreSQL, Python, SQLAlchemy, Selenium
Reporting

A look at the population changes in Louisiana since Hurricane Katrina.

An investigation into the resurgence of methamphetamine production in Illinois. The radio piece for this series won the Edward R. Murrow Award for best investigative reporting in a small market (2014).

An examination of bridge infrastructure in Illinois and Champaign County that found the bridges most in need of repair often went years before receiving funding or repairs.

The life of one farmer who represents the new normal: part-time farming.

Side projects
bl.ocks.org

A collection of data visualizations I have created while practicing D3 and Adobe Illustrator.

Tools: ai2html, Adobe Illustrator, D3, GDAL/ogr2ogr, Make, TopoJSON
Geographic data

This is a fully scripted geographic data-processing pipeline for Louisiana and New Orleans. It combines a Makefile and command-line tools to download and convert raw geographic data into Shapefile, GeoJSON and TopoJSON file formats. This was created to eliminate duplicate work and increase development speed for new graphics.

Tools: GDAL/ogr2ogr, Make, Mapshaper, PostGIS, PostgreSQL, TopoJSON
Talks

Erin Skarda and I discussed our experiences with hiring and including developers in newsrooms. We talked about why they are important, why they are worth the investment and how they can boost the newsroom.

A hands-on workshop teaching Google Fusion Tables.

The introductory portion of a three-part series of hands-on workshops taught by me, Ron Campbell and T. Christian Miller. This tipsheet covers my portion of the series.

A presentation arguing the case that journalists should continue to advance their data skills even when they are proficient at Excel.

Abe Handler, Todd Wallack and I presented some of our favorite notification tools that assist our reporting and shared the stories that they resulted in.