Student developer builds Long Island commuters a safer, more accurate train app

CS undergrad Ryan O’Connor led front-end development on a major update to Long Island Rail Road’s TrainTime app, helping the country’s biggest commuter line offer socially distanced service.

TrainTime's capacity view in front of a train Enlarge
The TrainTime app enables Long Island commuters to view real time train locations and car capacity, and receive notifications when it’s time to board. Credit: Long Island Rail Road

At a time when taking the train is more stressful than ever, CS undergrad Ryan O’Connor helped roll out a major app update to keep Long Island commuters safe and on time. Long a favorite of island residents for planning trips in and out of New York City, the Long Island Rail Road (LIRR) TrainTime app now boasts a number of data-driven features that enable socially distanced boarding and more accurate arrival information.

Released in June, the new TrainTime aims to keep users as spread out as possible without sacrificing punctuality or convenience, which is no simple feat on the busiest commuter railroad in North America. To accomplish this, users can view real time maps of train locations, current passenger capacity on each car, train arrival delays down to the minute, and enable notifications for boarding times and cancellations. The app is the first of its kind in the country to provide this real time capacity information to passengers.

“The (old) TrainTime app hadn’t been updated since 2014, and needed to be redesigned to provide more data, and accurately,” O’Connor writes on his website. “We took the core features from TrainTime—trip planning, station departure boards, and service alerts—in combination with the new real time features, and set out to make a major update to TrainTime.”

The app makes the capacity information even more useful with its platform view. Users standing by the tracks ready to board can see a blue dot with their location next to where each car will come to a stop. Within half a car of accuracy, they can make sure they’ll be standing next to the emptiest car before the train arrives.

Even something as simple as the app’s push notifications help further mitigate crowding and unsafe boarding. Where previously, at packed underground stations like Penn in Manhattan, chaotic throngs of rush hour commuters stood waiting around information boards for tracks to post (normally about 10 minutes prior to departure), now with TrainTime users can stand safely above ground and get notified at exactly the same time their sign would have been posted.

“Normally everyone’s waiting by the board and crowding in one place; people are just not going to want to do this anymore,” O’Connor says. “The notification will come up on your lock screen as soon as the train’s track is posted. We did some latency testing for this – it’s literally as soon as it comes up on the board.”

TrainTime's trip planning view in front of Penn Station Enlarge
Passengers using TrainTime can see where their train is while onboard or waiting for its arrival, and stay alert to which stops are next. Credit: Long Island Rail Road

While these features were already planned and under development before March, O’Connor says the pandemic response had an immediate effect on priorities and release timing.

“We noticed a shift when this whole thing went down in March,” he says. “We decided people would probably be less concerned about punctuality, and more with how full their car is and whether they can get a seat without being next to someone. That changed our design conversations in the last stretch before the launch.”

As the sole front-end developer on the project, it was O’Connor’s task to make sense of the various data streams from the trains and present them usefully inside the product.

The app makes use of more than half a dozen different sources of information to communicate train positions and car capacity and link it all in real time with the trip search feature. This was compounded by the rail service’s multiple fleets that all require different measurement techniques. One fleet, the M7, makes use of airbag pressure sensors to measure the weight of the train and how much it’s being offset by the passengers onboard.

“For those we literally weigh the entire car,” says O’Connor. “We know how heavy the empty car is, relatively how heavy a pretty full car is, and can figure out the baseline for each car.”

To allow this level of estimation, the app doesn’t attempt to pinpoint the exact number of passengers onboard at once – users can simply see its occupancy as a percentage in four different color-coded ranges. Other fleets in the service make use of infrared door sensors that count how many people move in and out of the car, or security camera feeds that use bounding boxes to determine whether each seat is occupied.

TrainTime's notification view Enlarge
TrainTime’s notifications allow passengers to stay socially distanced above ground while they wait for their train’s track to be posted. Credit: Long Island Rail Road

Likewise, train tracking makes use of multiple data sources to enable continuous accuracy, including GPS for outdoor positioning and on-rail sensors inside tunnels. Each train’s location is updated every 3 seconds, and riders can follow them on the map both before arrival and throughout their trip.

O’Connor, who begins his second year this fall, is a lifelong Long Island resident and transit user himself, and saw an opportunity to put his interest in user interface design to use when LIRR rolled out their previous train tracking map on (This was originally a separate product from the TrainTime trip planning app; features from both were then combined in the TrainTime update O’Connor worked on.)

He first took notice of the tool, released in January of 2019, when he set about developing an informational app for his high school (Chaminade High School, also on Long Island) and wanted to integrate a train arrival and delay section.

“I sent them a generic feedback email saying I’d love to use it in the high school’s app,” O’Connor says. “The person who responded was the Chief Innovation Officer there, and he asked to see a screenshot of how I used it.”

Mainly self-taught, O’Connor got the bulk of his UI and app design experience from making his app for Chaminade High School and various widgets for things like Apple TV. His very first product, an Apple TV clock app, now has over 110,000 downloads. He dove deeper by attending the Apple Developer Conference twice, in 2017 and 2019, with scholarship support.

During their conversation, LIRR’s CIO revealed that the rail system was planning a new native mobile app with development beginning that summer. O’Connor asked to get involved and ended up staying through the app’s full launch cycle 13 months later.

After this experience, he now has a key developer credit on an app that, before pandemic measures went into effect, had upwards of 70,000 daily users. Even after the drop in traffic, which in June was estimated to be at about 10% of its normal peak, the new TrainTime sees nearly 20,000 users a day.

“It has been invaluable to apply my knowledge in designing this app to something with such a large scale and impact,” O’Connor told his high school in an interview, “but also work alongside my teammates who are thinking of many groundbreaking applications of data and computer science, some of which you won’t see anywhere across the country.”

O’Connor concluded his work with the LIRR upon the app’s launch, but is interested in a potential return after his internship with Apple through the fall. There he’s working on the company’s Siri integration app, Shortcuts, which he believes can be leveraged to give TrainTime even more robust interactivity in the future.