Skip to main content

John Schaeffer

Craft of Code

Hold the Bus


The inefficiency of public transportation in Philadelphia frustrated transit advocate John Schaeffer, a backend software developer at Linode. So he wrote a program to track and map the on-time performance of SEPTA trolleys and buses, giving SEPTA and the city’s residents a better way to profile how their routes are doing.

Buses run on schedules. Too often, those schedules mean little when your bus doesn’t show up when it says it is supposed to. It’s an ever-shifting concept of time that has both direct and indirect impacts on the lives of the City of Brotherly Love’s citizens. In his role as a transit advocate, John Schaeffer has heard the stories and frustration from many across the city. Starting with his own.

When SEPTA tell you a bus or trolley shows up on time, that’s often not the case. The numbers change constantly. They’re often only accurate when you’re trying to catch a bus when you don’t actually need to catch a bus. While a lot of transit companies say they show up 90 percent on time, that percentage drops dramatically when you look at the data over the course of an entire day.

And that’s exactly what John did. He created a service to poll public data provided by SEPTA and dropped it into a GIS database hosted on Linode. This gave him the ability to visualize congestion along bus and trolley routes, using upwards of 5 million data points to show where every bus and trolley is and how late they are throughout the day. 

“I actually used the mapping to justify my schedule,” John continued. “In the morning, I used to take the trolley and there would be way too many cars out there. I like working with big data sets, so looked at the SEPTA data. If I left at 8am, it was guaranteed gridlock. If I left at 6am, based on the map data, I was all but guaranteed to have the road to myself.”

He started off injecting as much public data as possible into the service and created GIS maps using open source programs, setting up a block storage volume on Linode’s cloud hosting platform to keep it simple.

“Building this on Linode was incredibly easy and allowed me to create a valuable web service to help my city get a better sense for how its transportation infrastructure functions,” he said.

Share This