Mostly data + web dev here.

NYPL Tweeter

Side Project I created a Twitter bot to post hourly images from the New York Public Library's public domain.

JS, Python, Twitter API

Data Visualizations

NPR Currently working with NPR on designing and developing visuals with their dailygraphics rig. Some examples include a flowchart on Iran certification, visualizations of the opioid crisis, and more.

JS, d3, Flask

Texas Redistricting

Texas Tribune I worked with reporters to design and produce an interactive visualization, which demonstrated how Texas's 35th Congressional District violated the Voting Rights Act.

QGIS, Mapbox, d3, ArchieML

Vote Tracker

Texas Tribune I helped create an app that allowed reporters to easily track and visualize votes on Texas legislation from a Google Spreadsheet.

Nunjucks, Google Spreadsheets, Flask

Javascript Frameworks

Side Project I trained a neural network to generate new Javascript framework names. Some of them were pretty neat!

Torch, Amazon EC2, BeautifulSoup

Static Graphics

Texas Tribune Worked with reporters in the Texas Tribune newsroom to analyze, design, and develop data visualizations for news coverage. I worked on a story about court vacancies, analyzed data about summer meals programs, visualized drops in RideAustin ridership, and tracked down data on Texas's special session costs.

JS, d3, Nunjucks, Flask, Python


Side Project Worked with Eunice Lee and Bomani McClendon to design and create Waves, a Raspberry Pi project centered around transforming the transience of the spoken word into something concrete and physical. This project was debuted at the Segal Design Expo, and featured on the Raspberry Pi blog!

Python, JS, Flask, Raspberry Pi


Side Project Built a Chrome Extension that replaces monetary values on web pages with the equivalent number of avocado toasts, since that's what millennials are all into these days.

JS, Chrome Web Tools


Side Project Built at the Propublica Vital Signs Hackathon, Eunice Lee and I created a Facebook messenger bot that helps college students find mental health specialists nearby. This project won best use of the Better Doctor API and the Yelp API! We also wrote a writeup of the project here.

JS, Node, Express, FB Messenger API


Side Project NEWSounds is a data sonification experiment that imagines what the news sounds like. Using features including random seed generation, sentiment analysis, and topic categorization, I mapped headlines from the New York Times into music and an accompanying visual display.

HTML, CSS, JS, Tone.JS, Node, Express, NYT API

Chicago Marathon Visualization

Research Worked with a team of researchers to develop a data visualization system for the Chicago and Houston Marathons using the LAMP stack. I was involved with the design and development of the entire system, which features race simulations from previous years, real-time data incorporation (I built a separate Selenium scraper for the Houston Marathon), and the visualization and display that would be shown in forward command on race day. This research project is still ongoing.

JS, d3, PHP, Python, MySQL, BeautifulSoup, Selenium

Northwestern Soundscapes

NBN A collection of the everyday sounds on Northwestern's campus. I led the design, development, and audiovisual components of this piece.


Check Mark

Meedan Worked with Meedan to build a browser extension that allows users to use Check - Meedan's crowdsourced news verification tool - without navigating to the Check webapp itself.

JS, React, Redux, GraphQL, Chrome Web Tools

This is Not (a) Normal Todo

Side Project Chrome extension experiment on motivating myself and others to participate more in civic engagement, in wake of the 2016 election.

HTML, CSS, JS, Chrome Web Tools


Side Project A dumb Slack bot to make bad goat puns. It's pretty easily modifiable to other text replacement applications, though!

Python, Slack API


Class SnailPost is a mobile communication app designed to bring back the sense of slow, thoughtful satisfaction of snail mail, in an era where most communication is built upon instant gratification. Three classmates and I co-developed this app in conjunction with clients from Northwestern's Masters in Product Design program.

AppGyver Supersonic, AngularJS, Firebase

When should you go to the gym?

NBN An interactive look at the busiest times to go to Northwestern's gyms.

JS, d3

Lost in translation

NBN I worked with a writer to develop a story focused on students for whom English is not their primary language.


When should you do laundry?

NBN Take two of visualizing Northwestern's busiest facilities - this time, the laundry machines. I used a Python scraper to retrieve the data from LaundryView, then built the visualization with d3.

JS, d3

Radio Drama - Influential Friend

NBN Developed an audio/text piece with NBN's Writing Section focusing on influential friendships in college.


Winter weather recap

NBN A glance at an unusually warm weather in Evanston. I gathered weather data from the National Weather Service, and visualized it in d3.

JS, d3

Tracking the transfers

NBN A chord-diagram visualization of Northwestern's interschool transfers. The data and idea was provided by another NBN staffer, and I created the visualization.


Valentine's Day Emojis

NBN Made a fun little Valentine's Day page with NBN's Life and Style Section.


Northwestern Eateries

NBN Helped the current NBN Interactive Editors develop and compile a guide to campus eats.