Projects

VizWit

VizWit

An interactive data visualization tool that uses a JSON config file to generate interactive charts that cross-filter one another. This tool enables open data providers to create showcases for their datasets that allow users to navigate through the data and answer important questions without having to know what to do with a giant spreadsheet, thereby broadening the audience of open data.

Dataface

Dataface

A user-friendly database builder, without the vendor lock-in. IT departments can let their business users design and edit tables in a standard SQL database they control.

JKAN

JKAN

Open-source data portals can be really hard to install and maintain. But their basic purpose of providing links to download data really isn’t that complicated. JKAN is a proof-of-concept that allows a small, resource-strapped government agency to stand-up an open data portal by simply clicking the fork button. The result is a lightweight, backend-free open data portal, powered by Jekyll.

Parks & Recreation Finder

Parks & Recreation Finder

A mobile-friendly way to search for activities and locations in your neighborhood, built by a team of designers, developers, and content writers.

Philly Ward Leaders

Philly Ward Leaders

Philadelphia’s Ward Leaders have huge influence over who gets elected to public office. As powerful and few as they are, most voters haven’t heard of them. This transparency site aims to bring a level of spotlight to ward leaders that is more proportional to the power they wield.

Phila.gov Router

Phila.gov Router

In order to serve the City of Philadelphia’s website to users as quickly as possible, we used a globally distributed cache. But in order to handle redirects and rewrites “at the edge,” we had to build request middleware that would run in an AWS Lambda@Edge function. This amounted to writing a request router from scratch, along with clever tests to ensure basic human error in updating redirect rules does not bring down the City’s website.

SubscribeMe

SubscribeMe

SubscribeMe is meant to be a service for developers who want to let their users subscribe to updates from their application, but aren’t thrilled about having to write code for confirmation emails, unsubscribe functionality, scheduling the emails, and worrying about how it will scale. Using SubscribeMe, developers can simply specify the data source’s API, configure an email template, and add a “subscribe” button to their application.

enviar

enviar

Real-time, multi-user chat interface for SMS / text messages. Imagine a call center where customers can send a text message to a single number and have a live chat with any agent(s) available.

CSV Schema

CSV Schema

Analyzes a CSV file and generates database table schema, all within the browser.

Socrata-to-Carto API translator

In order for the City of Philadelphia’s Open Data Program to migrate to a new API provider, we had to make sure existing integrations didn’t break and couldn’t wait for all of them to be updated. So we built a reverse proxy that translates incoming old Socrata-style requests into their equivalent new Carto-style requests. This allowed us to launch incrementally by employing the Strangler Pattern.

Geoservices for Humans

Geoservices for Humans

Human-friendly documentation of Esri GeoServices, a type of API that is common among cities that use Esri’s GIS products that otherwise carries a steep learning curve. This tool generates an interactive interface for constructing queries. (work in progress)

Static API

Static API

Turns a CSV file into a static API and publishes it to a static web server such as GitHub pages using Travis CI automation. This provides a low-tech way of maintaining a dataset, especially when paired with prose.io’s CSV editor.

Who Won Philly

Who Won Philly

The office that oversees elections in the City of Philadelphia provides live election results on a rather old site. At a Code for Philly hack night, we built a tool to scrape the official results every 30 seconds and provide a simple, mobile-friendly interface that auto-refreshes.

The City Commissioners Office has since adopted the site as the official tool for live election results.

TextBlast

TextBlast

In a City where 41% of households do not have internet access, TextBlast provided a way for community groups to connect with those residents through text messaging. Community groups often send a mass email reminding neighbors about an upcoming meeting. TextBlast allowed the groups to collect cell phone numbers in the neighborhood and send that kind of reminder through text message, looping in those who may not have or use email at home. The service was provided free of charge, and was intended for groups like civic associations, CDCs, business associations, and other community builders.

PhillyAddress

PhillyAddress

PhillyAddress extracted data from the Office of Property Assessment‘s web site and presented it in an easy-to-use mobile application, as well as an API that other software is built upon. In addition, PhillyAddress allowed users to search for properties by the owner’s name, a core feature left out of the City’s web site at the time.

Analyze the Vote

Analyze the Vote

Serving on the new City Commissioners Transition Team, I used public election data to build vote analytics tools including maps and scatter plots that show voter turnout, along with where candidates’ support came from.

PhillySNAP

PhillySNAP

A product of Random Hacks of Kindness hackathon, PhillySNAP allowed users to text their street address to 267-293-9387 to find the nearest SNAP/Food Stamp-accepting Farmers Market, and the closest two SNAP-participating healthy corner stores. We partnered with the Food Trust to advertise the program on pamphlets being distributed to welfare recipients.

Somerset Neighbors

Somerset Neighbors

Recognizing that the neighborhood with the biggest drug corner in the region had no civic association, the 24th Police District Advisory Council partnered with the New Kensington CDC to knock on doors and bring neighbors out to a meeting every month. These meetings became very popular, with attendance ranging from 40-90 neighbors per meeting, and eventually formed into Somerset Neighbors for Better Living, with by-laws and a Board of neighbors.

Frankford Safety Ambassadors

Frankford Safety Ambassadors

As Executive Director of the Frankford Special Services District, I was tasked with creating and funding a Safety Ambassador program for Frankford Avenue, providing uniformed personnel patrolling the business corridor interacting with shoppers, checking in with businesses, and liaising with the local Police District.

More projects and other open source contributions are available on GitHub.