When Katia Oleinik came to the U.S. from Russia to work at a small computer graphics lab, she found parallels between learning English and coding. Each had its own nuances and tricks. Now she is manager of scientific programming and applications at BU, leading a group of software engineers who support researchers with computation needs. Most of their modeling or visualization efforts would overwhelm a laptop – so they use a shared computing cluster that’s equivalent to about 8,000 modern laptops. “Virtually no breakthrough — be it designing a new drug, developing new materials for clean energy, or addressing climate change — can take place without computation,” said Oleinik, 48. One day Oleinik might meet with a kidney doctor about deep learning algorithms to quantify the extent of kidney damage, and another a biologist about optimizing images of sea urchins. The Globe spoke to Oleinik about why she loves the language of computing:
“I’m currently hiring software engineers and it’s incredibly difficult to hire either a female or a person of color. It’s predominately white males who apply for our positions. We’ve had quite a few meetings to discuss this situation, because we want our team to reflect the society we live in.
I think the root of the problem starts very early; programming is typically not introduced until high school, and computer literacy is lacking, especially because it’s presented as a dry curriculum of machine commands.
I went to middle school in Russia and was afraid of mathematics. I joined a mathematics and physics-focused grade school with the advice from my parents that I should ‘face my fears.’ There I learned to appreciate the art of problem solving. But only later did I realize how essential my mathematical background was to every aspect of my work. Not only is math essential to many of the research projects I’m involved in, but the ability separate a complex problem into manageable blocks helps me even with project management tasks.
My first job, upon coming to the states over two decades ago, was in the rapidly evolving field of computer visualization. When I later started at BU as a graphics programmer, I quickly realized that I faced a very steep learning curve. I saw this as an opportunity to learn a wide range of computing skills.
On a typical day, I can meet with half a dozen researchers from departments ranging from chemistry, economics, astronomy, global health, and more. It’s a team effort to understand their task and implement it with the goal in mind. In most cases my involvement in those projects is to help to improve and parallelize the code, so it runs in the most efficient way on our cluster.
When I encounter code where everything holds a purposeful place, this makes me think of programming as being very similar to music – the notes are put together to make a harmony. And when I hit a coding roadblock? I view it like a puzzle. And what could be more interesting as solving a puzzle?”