Data visualization

Not Sure About Investing in Stocks? This Should Convince You (MoneyWise)

I gathered data on the prices/rates of stocks, bonds, gold and the equivalent of savings rates. I made an interactive tool using the data that shows the user how much money a $2K investment in each of those items during the user’s birth year would be worth in 2018.

From the Ground Up: Black Voters in Florida City Become Potent Political Force (The Progressive)

Civic groups and the Service Employees International Union teamed up in Delray Beach, Fla. to increase black voter turnout. For this article, I used data from Palm Beach County, Fla.’s elections office to show that voter turnout increased in the precincts targeted by civic groups and the SEIU. (Subscriber only).

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.

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.

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.

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.

Web scraping

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 political finance webcrawler

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

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 (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. 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. 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

The Trump administration is returning us to an abstinent society (Playboy)

The administration of U.S. President Donald Trump wants to cut spending on teen prevention programs while paying for abstinence-only education. But a study shows that states which spend more on programs for the poor have less teen pregnancy than fiscally conservative states.

Miami Pols Want Their Promised Light Rail (Next City)

Miami politicians want to spend $1.5 billion on a rail line. Miami-Dade’s mayor wants to spend a fraction of that on upgrading buses. The county’s rail lines loses ridership while its express bus route’s grows.

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.

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.

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.

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 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.

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.