Research Software Engineer Spotlight: Henry Schreiner

Written by
Eoin O'Carroll
Sept. 15, 2021

In April 2020, as hospitals faced a dire shortage of ventilators, Henry Schreiner had to shift his attention from tracking subatomic particles for high-energy physics to monitoring oxygen levels for COVID-19 patients.

Schreiner, a computational physicist and research software engineer with IRIS-HEP at Princeton University, had joined the Princeton Open Ventilation Monitor project, an all-out effort by Princeton scientists and engineers to supply hospitals in Pennsylvania and New Jersey with specialized airflow monitors for patients undergoing non-invasive ventilation, a type of respiratory support that stops short of full intubation. "It was a very intense month," says Schreiner, who led the software effort and created the flow meters' user interface, which lets clinicians monitor 20 patients at once. "I was sort of working double time."

He would have had to work even longer if he had started from scratch. Instead, Schreiner built on techniques he learned as a grad student at the University of Texas, Austin, where he built a data acquisition system that uses cosmic-ray muons to map the interior of a sealed Mayan pyramid in Belize.

Cosmic ray muon detectors

One of two cosmic ray muon detectors at the base of a Belizean Pyramid, with debugging monitor attached (left). The power source was a solar array (top right) with a battery bank and backup generator (lower right) placed in the nearest clearing.

Credit: Henry Schreiner, Princeton University

"It was really very similar", he says. "Both had to work with minimal user interaction and without developer intervention once it was deployed."

Schreiner knows intuitively that no code is an island. Software, at least when it's well written, can be reused, extended, and integrated with other software into a broader ecosystem. Being mindful of that ecosystem means not having to reinvent the wheel. "It can be very easy to think that you're the only one who's faced your problem," he says. "But it's so often that it's not true at all."

This holistic approach has resulted in Schreiner's code appearing in a variety of far-flung applications. His supporting work on pybind11, which helps the popular programming languages Python and C++  work together, is used by Facebook, Google, and in thousands of Python packages.  He wrote CLI11, which translates commands sent to C++ applications, under an award from the National Science Foundation. Originally developed to simplify the interface for high-energy physicists using graphics processing units and other systems that can perform multiple calculations at once, today it is now used in many places, including the Microsoft Terminal. 

"When I write something, I try to avoid specializing it to the last possible second," he says. "I like it when we can use the same tools."

Schreiner, who joined IRIS-HEP in 2019, notes that the work of supporting a software ecosystem typically goes unrecognized in academia, which typically rewards those who publish new – increasingly hyper-specialized – research papers. Thankfully, he says, "I don't have to worry about that with my position with IRIS-HEP."

Plus, the job comes with its own rewards. "The best way to be on the cutting edge," says Schreiner, "is to build on something that someone else has built on."

Princeton Open Ventilation Monitor

Testing the Princeton Open Ventilation Monitor with a helmet respiration device. The single-device display can be seen on the monitor on the left. Several devices can be seen on the bottom left, one connected to the breathing apparatus and two disconnected devices showing red screens in the alarm state.

Credit: Chris Tully, Princeton University