Coming soon

I'm rebuilding this site by hand. Check back in a bit.

Cris Slotoroff

Chasing a 1947 trolley with a cron job

June 28, 2026 transit building

Philadelphia has these gorgeous 1940s PCC streetcars that still run on the Girard Avenue line. Not always, though. Most days you get a regular bus. Some days, with no announcement, the vintage trolleys roll out, and if you're a person like me, that changes your whole afternoon.

So I built a tracker.

The trick that makes it work

SEPTA's real-time feed tells you every vehicle on the route, but it doesn't say "this one is a beautiful antique." The tell is the fleet number: the PCC cars all have four-digit IDs starting with 23. That one piece of trainspotter knowledge, encoded as a rule, is the entire product. Everything else is decoration.

I love this because it's the kind of insight no amount of engineering gets you. You get it by caring about trolleys.

The app started keeping its own history

Here's my favorite part. A little scheduled job samples SEPTA's feed every five minutes and saves what it sees. Do that for months and you have a dataset that exists nowhere else:

SEPTA publishes none of this. Nobody does. The app built its own archive out of patience.

What I'd teach from it

If I turned this into a lesson, the essential question would be: what can you learn by simply writing things down on a schedule? Most "data problems" I meet at work aren't missing analysis. They're missing the habit of recording. A five-minute cron job is just a diligent notetaker that never gets bored.

Also: ride the trolley. It's wonderful.

Share this on LinkedIn · More posts