Data visualization


Six Federal Grants To South Florida That Trump Could Threaten Under Sanctuary Cities Order (WLRN)

I downloaded data from to find the biggest federal grants made to South Florida counties in 2016. President Donald Trump has said he wants to cut grants to so-called sanctuary jurisdiction, which his administration says fail to cooperate enough with federal immigration agents. Except for Miami-Dade, South Florida counties and cities do not need to cooperate with federal immigration authorities, which could put them in Trump’s crosshairs. I detailed the biggest federal grants to South Florida under threat from Trump’s administration for Miami’s NPR station, WLRN.

Obama Garland Congress salary realtime counter

Realtime cost of leaving a Supreme Court seat vacant (Fusion)

I made a realtime graphic showing the number of days since President Barack Obama nominated Merrick Garland to the Supreme Court versus how much salary Congress has collected since then. The graphic updates every second.

Fusion Millenial train

Millenial Train (Fusion)

I animated a train route across America for a Fusion article about a cross-country rail trip taken by 18- to 34-year-olds who volunteer on projects at cities along the way. I used D3.js and plain Javascript to draw the rail route as the reader scrolls through the article. maps data on average wealth, rent and other demographics in every neighborhood in America

Rich Blocks Poor Blocks shows income, rent and other demographic data for every neighborhood in America.

I built this mobile-friendly site from scratch with PHP, HTML, CSS and Javascript. I made the maps with Google Fusion Tables and Google Maps Javascript API. Data comes from the U.S. Census.



Datavizz is where I make and post data visualizations in my spare time. Mainly D3-powered, I’ve made charts and graphs about subjects like data journalism or the gender pay gap in America.

pbc 2014 parcel map

Palm Beach County property values map 2014 (Palm Beach Post)

An interactive map showing property values in Palm Beach County, and how they changed from 2013 to 2014. I helped clean data for this map, which won a Sunshine State Award from the Florida chapter of the Society of Professional Journalists.

Web scraping

Metacritic web scraper image

Metacritic videogames scanner

This web scraper gets information on critic and gamer reviews from video game review aggregator A shell script splits the script into many different instances, each of which targets a different video game system. The script pauses occasionally so it does not overload Metacritic’s servers.

Florida flag

Florida political finance webcrawler

Webcrawlers that scan millions of campaign donation records for state-level races and put the info in a MySQL database. logo

Lyrics webcrawlers

Three web scrapers I wrote for a German marketing firm. The scripts downoaded almost a million lyrics from, and Lyrics Wikia.

Palm Beach County logo

Palm Beach County (Fla.) political finance web scraper

These Ruby webcrawlers get thousands of political donation/expense records from the Palm Beach County Supervisor of Elections website and putting the data in a MySQL database. logo just-sold web crawler

Ruby-powered web scraper that scans thousands of auction records from web domain-flipping site The script puts the data in a MySQL database.

Source: web scraper

Crawls through thousands of drug test results from and puts the info in a SQLite database. For each pill, the script finds info on what substances were found and how much of it was found.

Reporting and writing


Robots May Boot Immigrants (LifeZette)

America’s farms slowly are losing migrant workers. And robots may replace them.


Free STD Testing Today at Some Planned Parenthood Locations (South Florida Gay News)

President Donald Trump in April 2017 made it easier for states to deny some federal money to abortion providers like Planned Parenthood. In Florida, which has a Republican governor and legislature, this means local Planned Parenthood clinics could altogether lose tens of thousands of dollars. For South Florida, that could mean teenagers would no longer have a place to go for free STD testing, contraceptives, pregnancy testing and cheap or free birth control.


Furious Crowd Storms Congressman Brian Mast’s Town Hall (South Florida Gay News)

Florida Republican Congressman Brian Mast had his first in-person town hall on February 24. Hundreds of angry constituents demanded he vote against repealing the Affordable Care Act, which his party wants to scrap.


Thousands in West Palm rally against Trump, for women’s rights (South Florida Gay News)

I reported, wrote and photographed a 7,000+ West Palm Beach rally against President Donald Trump’s administration and the Republican-led Congress. I asked the event organizer how she plans to keep people active with her group’s cause.


Mock Funeral Held to Protest Trump Inauguration in West Palm (South Florida Gay News)

I covered a protest held by a local anti-Donald Trump political group on the day of his inauguration outside a local Trump Plaza.

Boynton Beach, Fla. resident Byron Harris was accused of ramming his car into a cop in October 2014 and leading police on a high speed chase. Harris said that after the chase, officers beat and Tasered him. (Source: Palm Beach County Sheriff's Office)

Man accused of hitting Boynton officer with car says cops beat him (Palm Beach Post)

I obtained unredacted police reports detailing how Boynton Beach (Fla.) officers in August 2014 went on a 100-mph chase to apprehend Byron Harris, accsued by his passengers and police of crashing into an officer. Once police caught up with Harris, they punched, kicked and Tasered him and his passengers.

Chaz Stevens talks with reporters after setting up his Festivus pole made out of beer cans at the Florida Capitol building in Tallahassee, Fla., Wednesday, Dec. 11, 2013. Stevens placed the pole across from a Nativity scene. Since Florida considers the Statehouse rotunda to be a public forum, people can use the space to express themselves or protest, as long as they first apply with a state agency. (AP Photo/Brendan Farrington)

Satanic invocation could be coming to Lake Worth commission meeting (Palm Beach Post)

Preston Smith led an atheist invocation at a Lake Worth (Fla.) city commission meeting, and four commissioners walked out on him. Afterwards, another atheist named Chaz Stevens said he wanted to do a Satanic prayer to show that invocations are ridiculous.

Palm Beach County Commissioner Melissa McKinlay. Source: Madeline Gray/Palm Beach Post.

McKinlay’s $387,478 appears to set commission fund-raising record (Palm Beach Post)

I scraped all donations to 2014 Palm Beach County Commission candidate Melissa McKinlay. My analysis showed McKinlay raised a record amount of money for a county commission race.

A big chunk came from one of the world’s biggest sugar companies, a local billionaire family, a trash-hauling company, lawyers and developers wanting to build on restricted farmland.

Poll worker error disenfranchises voters in close Lake Worth (Fla.) election

Poll worker error disenfranchises 14 Lake Worth voters (Palm Beach Post)

Lake Worth (Fla.) had a close election in August 2014 to decide on raising taxes to fix most its roads. It failed by 25 votes. Fourteen provisional votes got rejected because poll workers messed up their paperwork.

Homeless Panhandler

Lake Worth panhandling ban would be unconstitutional, says ACLU lawyer (Palm Beach Post)

Lake Worth (Fla.) passed a big panhandling ban covering busy parts of the city. But the ban unconstitutionally banned constitutionally-protected speech, ACLU lawyer James Green said.


Who can I blame for high gas prices? (Bankrate)

Using data on oil demand, the strength of the U.S. Dollar, and gas prices, I show how speculators, oil supply shocks, taxes and a cheap dollar affect gas prices.


10 Cities That Have Been Getting More and More Gay (South Florida Gay News)

Using Census data, I figured out each city’s unmarried gay-couple-to-straight-couple ratio in 2000, subtracted it from their 2010 ratio, and ranked places by going from biggest increases to smallest. I included only towns with a 2010 population of at least 100,000 in order to control for city size. I interviewed local LGBT figures from the top-ranked towns to get their opinion on why their cities’ gay populations increased. Fort Lauderdale, where South Florida Gay News operates, came out at number one.