Author Image

James Turk

Hi! I’m a software developer, civic technologist, and educator.
I teach in the CAPP and MPCS programs at the University of Chicago.

If you know me, there’s a good chance it is because I created and led Open States for 13 years.

I like meeting new people, so feel free to make an appointment or get in touch: Or, scroll on to learn more about my past work:
Projects | Courses | Work | Talks | Press

Projects

scrapeghost
scrapeghost

Experimental library for webscraping using LLMs.

jellyfish
jellyfish

Fast implementations of common fuzzy string comparison and phonetic algorithms.

openstates
openstates

Open States is an open source project that aggregates state level information from all 50 states and makes it publicly available. This was my primary project for the majority of 2009-2022.

go-jellyfish
go-jellyfish

Fast implementations of common fuzzy string comparison and phonetic algorithms.

scrapelib
scrapelib

Python utility library for scraping unreliable websites with features like forced‐caching, retries, and request throttling.

spatula
spatula

After spending over a decade writing (and perhaps more importantly, maintaining) scrapers in Python, I have some opinions about how to structure them. Spatula is a library that I’ve been working on to help me write scrapers in a more consistent way.

django-honeypot
django-honeypot

Generic honeypot utilities for use in django projects.

django-markupfield

Custom field type for Django projects that stores markup (markdown, ReStructuredText, etc.) and pre‐rendered HTML side‐by‐side. (Used on python.org!)

rrl

Generic rate limiting library with Redis.

django-secretballot
django-secretballot

A django application for building anonymous polls.

Courses

Software Engineering for Civic Tech
CAPP 30320 Spring 2024

Building on the skills taught in the first year and a half of the MSCAPP program, students spend the quarter working in teams to build a civic tech project. Covers traditional software engineering topics such as agile processes and design patterns, as well as topics that are important to civic technology such as human-centered design and working on teams more typical of government and nonprofits.

Python Programming
MPCS 51042 Fall 2022 | Fall 2023

Masters Program in Computer Science course teaching programmatic thinking using Python. Course introduces Python as a multi-paradigm language, examining procedural, functional, and object-oriented features.

Computer Science With Applications 2
CAPP 30122 Winter 2023 | Winter 2024

The second CS course in the Master of Science in Computational Analysis and Public Policy program. The course is focused on building real-world data skills in Python. Covers code organization concepts, data gathering from APIs and web scraping, databases, data cleaning and visualization, and data structures in Python.

Work

I’m passionate about writing code for the benefit of society, and I’ve been fortunate to make a career of that, including 13 years working on Open States. I am currently working to grow the field of public interest developers and increasingly find myself drawn to work to help ensure the web remains a public good.

If you are working on something that you might want to collaborate on, please get in touch.

Jobs

  
University of Chicago

2022 - Present

Chicago, IL

Assistant Academic Director, MSCAPP

2024 - Present

Assistant Clinical Professor

2022 - Present

Responsibilities:
  • Teach courses in Masters Program in Computer Science and Computational Analysis & Public Policy programs.
  • Data Science Clinic Mentor, Internet Equity Project (2023)
  • Congressional Modernization Fellowship Academic Lead (2023)

Remote

Plural is a company that works to make democracy more accessible and transparent. In 2020, I transferred ownership of Open States to them and joined their team as Director of Public Data. I left in 2022, after marking 13 years as the lead of Open States.

Director of Public Data

2020 - 2022

  

  

Washington, DC

After 7 years at Sunlight Foundation, Open States became an independent project in 2016. After a two-year hiatus, I again led the project. During this period, Open States was primarily funded by grants from Reynolds Journalism Institute and the National Science Foundation C-Accel program.

Founder/CTO

2016 - 2022


Princeton, NJ

I spent most of 2019 commuting between DC & NJ, serving as the principal engineer of the Princeton Gerrymandering Project, primarily supporting their OpenPrecincts application and other technical decision-making.

Principal Engineer

Jan 2019 - Oct 2019

  

  
PBS

2015 - 2019

Washington, DC

I took a hiatus from Civic Technology work, leading two backend teams through an overhaul of PBS’ internal data model for video, a migration that affected all 300+ PBS member stations.

Director of Technology

2015 - 2019


Sunlight Foundation

2007 - 2015

Washington, DC

Sunlight Foundation was the preeminent civic technology organization in the US from 2007-2016. I was fortunate to join the organization as an intern and then one of the first full time developers. Our team built award-winning civic technology tools. In 2009, I helped found what would become Open States. In 2014 I served as CTO/Director of Sunlight Labs.

CTO / Director of Sunlight Labs

2014 - 2015

State & Municipal Data Lead

2010 - 2014

Developer & Open Source Coordinator

2007 - 2010

  

Selected Talks

Automating Web Scraping with GPT
Media Party May 2023

Presentation on using GPT-3.5/GPT-4 for automated web scraping.

Open Civic Data

Invited participant in annual summit on civic data standards used by Google, Microsoft, Facebook, etc.

Django Built A Nonprofit
Django Birthday Jul 2015

Invited participant in annual summit on civic data standards used by Google, Microsoft, Facebook, etc.

Open Civic Data

Presentation of Sunlight Foundation’s work to audience of national media organizations.

Opening Government Data

Presented ongoing civic tech work to audience of government and volunteer developers.

Open Data, Open States

Presented ongoing state legislative work before audience of state legislators, staffers, and lobbyists.

Opening Government with Python
PyCon US 2011 Aug 2012

Presented poster on civic tech projects at largest annual Python conference.

Mobile Apps for Investigations
CAR 2011 Feb 2011

Invited speaker, presented on use of Augmented Reality to provide context for Recovery.gov spending.

Open States Project

Invited to present Open States work to audience of journalists and developers at TimesOpen 2.0.

Selected Press

Civic Tech Pioneer James Turk Joins UChicago CS to Teach in MPCS, CAPP
uchicago.edu Oct 2022

Open States Joins Civic Eagle
pluralpolicy.com Nov 2021

Current.org
current.org Jan 2019

Departure from PBS

Why keep Open States going?
opensource.com Nov 2016

How I Work (Interview)
Technically.DC Feb 2015

Open States project achieves grand milestone
opensource.com Mar 2012

Open States: Transparency for state governments using open data
opensource.com Sep 2011

Netzpolitik Interview (German)
netzpolitik.org Jul 2008

Interview with German outlet on Open Government.