My work supports civic groups, activists, and governments in developing just and equitable systems. I specialize in free and open-source software. I've worked on projects for clients ranging from small nonprofits to Fortune 500 companies.
I am currently available for full-time work for a cooperative, nonprofit, or government organization. I am most interested in work on large-scale participatory governance, the cooperative economy, and free/open-source software (resume, CV, contact).
I am also available for short-term and long-term consulting on free/open-source and civic technology projects. Discounted rates are available for worker-owned cooperatives and nonprofits. Contact me to book an introductory meeting.
Dashboard is a web application providing front end access to makes it easy to Media Cloud, a database of news articles collected by Harvard's Berkman Klein Center. The database includes articles from over 40,000 blogs and news sites over a 10 year period. Dashboard provides a number of real-time visualizations, making it easy to explore and refine queries.
The application consists of front end visualization code as well as a python Flask server which provides a REST API and communicates directly with the Media Cloud servers. The application is modular and extensible, allowing new REST endpoionts and new visualization widgets to be added easily. Each search involves mutliple queries, each hitting multiple REST endpoints. Each search also results in the contrustion of several visualization widgets, each of which can depend on any combination of queries and endpoints. To manage this complexity, I architected an asynchronous solution for updating the relevant widgets once the necessary REST queries have completed (blog post).
The Media Cloud project is a collaboration between many people at Harvard's Berkman Klein Center and the MIT Center for Civic Media. My role was to architect and develop the dashboard application from scratch, as well as to supervise MIT undergraduates contributing to the project. I worked closely with Media Cloud leadership and the back end database team to ensure that Dashboard would be reliable and intuitive application that meets the needs of media researchers.
Vojo is a hosted version of the VozMob SMS blogging platform. Vojo allows anyone to create, contribute to, and coordinate an online blogging community without needing internet access. Text, video, and audio can be contributed through SMS. This platform was developed to enable low-income populations to contribute to online digital media, without needing broadband internet or a smart phone.
My role on this project was implementing many of the features necessary to convert the single-site VozMob code into a hosted multi-site platform that allowed anyone to create a community. I also supervised an MIT undergraduate working on the project as a developer.
PageOneX is an interactive media analysis tool for measuring front-page newspaper coverage. It allows anyone to visually select portions of newspaper front pages relevant to a particular topic and compare content over both publications and time.
The application uses a Ruby on Rails back end with a MySQL database, and a javascript front end. When I joined the project, the application was partially implemented as part of a Google Summer of Code project. My role, in collaboration with Rahul Bhargava, was to take the project from a partially complete prototype to a production-ready web application. We met regularly with Pablo Rey Mazon, the project's creator, to discuss features and user stories. The final product won the 2014 American Political Science Association Best Software Award.
Seltzer CRM is a free/open-source tool facilitating self-organization in member-run cooperative organizations like hackerspaces. It currently supports contact information, membership accounts and payments, as well as historical reporting. Open-source contributors have developed a number of modules including mentorship, storage tracking, and RFID entry.
As a co-founder and board member of the i3 Detroit hackerspace, I found there was a need for simple, modular tools that could be learned quickly by volunteers and regular members rather than dedicated staff. I started working on Seltzer to meet this need. Since 2009, I have worked with Matt Oehrlein, Chris Murray, and other volunteers to maintain Seltzer. During active development, I held weekly online development meetings to coordinate the open-source developers. Since then, Seltzer has been adopted by several spaces around the world and helpled i3 Detroit grow to over 150 members while maintaining its volunteer-based, self-organized structure. The core project has been maintenance-only since 2015.
Seltzer's code is modeled after Drupal and uses a very similar module and theme system. The main difference is that Seltzer is fundamentally organized around contacts, rather than Drupal's content nodes. This modular structure has allowed spaces using the software both to contribute back to the core code and to develop functionality specifically to their needs.
Chatango is a cross-platform, responsive, and embeddable group chat system. It supports rich media such as message backgrounds and embedded video.
At Chatango, I was responsible for developing a javascript and HTML5-based replacement for their legacy Flash client. I was also responsible for ensuring cross-browser and mobile compatibility. In particular, I developed architectural solutions for managing the complexity of multiple platforms and asynchronous server communication. I worked closely with the company founders as well as with junior developers.