The Paths to HPC series, presented in collaboration with Women in HPC, showcases the women working in high-performance computing. Our hope is that by highlighting these trailblazers—and the sometimes unique paths they followed into the field—other women will feel inspired to envision themselves in similar roles.
What was your path to working with HPC?
I took the scenic route to HPC, with some grand vistas along the way. It started with computer science classes when I was an undergraduate at the University of Chicago (U of C). That’s where I discovered how satisfying programming can be—writing elegant code resulted in a little surge of serotonin for me. I tutored for the Computer Science department where my strong liberal arts background gave me tools to effectively communicate complex subjects to my fellow students. One student memorably said they sought me out because “Janna’s not a geek”.
Nonetheless, I picked history as my major because that let me study the history of everything interesting to me. After I graduated, I stayed at U of C and worked in Academic Computing where I leveraged my communication and technical skills to help researchers use cutting edge computer technology to advance their research. I didn’t know much about HPC then, but I worked on engaging projects like haptic virtual surgery and ran a 3D molecular modeling computer lab.
And then my path took a detour, off the road and into an entirely different place. I had twins and left the workplace to be at home with them full-time. Programming and the UNIX command line faded for a time as reading bedtime stories and building LEGO towers overtook my life.
When the kids got older, I mapped my journey back to work. I knew my skill set had gotten stale so I went back to school at the University of Chicago’s Master’s Program in Computer Science. Those first classes of graduate school took everything I had.
I remember cleaning the kitchen after the kids went to bed, counting out the kitchen floor tiles as imaginary arrays and programming them in my mind as I loaded the dishwasher.
I attended kids’ basketball games and did my homework in the bleachers, cheering between problem sets. I sat in the front row of my classes even though I knew the teachers would call on me, which sometimes made me feel foolish if I didn’t know the answer. I learned about parallel computing, programmed GPUs, and re-discovered that little surge of serotonin.
After graduation I started looking for a job. My resume looked pretty good, except for that 12-year employment gap. When I learned about the Sr. Computational Biology Specialist position in Research Computing at Northwestern I applied right away. I wanted to support academic researchers using HPC because then I could build on both my existing career experience and develop my new HPC skills.
Research Computing’s commitment to diversity in hiring meant taking a closer look at job candidates with non-traditional backgrounds like mine. After multiple interviews I knew this was my dream job and when they offered me the job I said yes, hung up the phone, and burst into happy tears.
It’s the best job I’ve ever had because it’s challenging and deeply satisfying, and I’m very grateful I took my non-traditional path to get here.
At Northwestern, I work closely with researchers who use HPC for their research. I help them with the technical side of parallelizing workflows and teach high-performance computing topics. I also get to mine our HPC cluster for reporting data to help tune the scheduling algorithm to accomplish our resource-sharing goals.
Best of all I get to work with a team of passionate research consultants who care deeply about our researcher community and take pride in the work we do together. It’s the best job I’ve ever had because it’s challenging and deeply satisfying, and I’m very grateful I took my non-traditional path to get here.
What’s cool about working with HPC?
I truly got hooked on HPC when I learned about schedulers and their algorithms to share finite computational resources among a group of people.
Sharing limited resources is all about fairness, a topic I had a master class in as a mom of twins watching how important fairness was to my kids. Once, I weighed their breakfast cereal on a scale to assure them neither one got more cereal than the other. Just like my twins, users on an HPC system care about fairness and they need to feel confident there is a reasonable algorithm working for equitable distribution of resources so they can relax about being competitive for those resources.
Schedulers provide equitable sharing at scale and have many factors that can be taken into account—for example, holding some nodes idle so an upcoming large job can be placed there once enough nodes become available. High-throughput computing uses resources differently than large jobs, and having both types of jobs on a cluster requires tuning to get the right balance between them. I find this all very interesting, and I love when new people join the team and I get to do a deep dive with them about the way schedulers work.
Algorithms for sharing resources are widely applicable not just to HPC but to any limited resource—just think of the distribution of toilet paper in a pandemic.
What are some of the challenges you have faced in taking this path?
One time in graduate school I was the only woman in a class of 20. I felt like I represented all women in that class, so when I made mistakes, I felt like I let down all women everywhere. I had to let go of that responsibility and learn to just represent me. I learned it was ok to make mistakes in public and that my mistakes didn’t make all women look bad or even make me look bad. It took courage, and putting myself out there helped me become comfortable with sharing and advocating for my ideas.
When I made mistakes, I felt like I let down all women everywhere. I had to let go of that responsibility and learn to just represent me.
I’m very fortunate to work on a team that values meaningful feedback, both positive and negative. It wasn’t easy for me to receive negative feedback at first, but just as knowing my strengths helps me lean into them, knowing where I have ineffective habits helps me compensate for those and become more effective.
Once I became more open to negative feedback, I realized that having clear feedback actually helps me feel confident in my professional voice because I have a strong understanding of who I am in the workplace. Today, because of the support and feedback I’ve received, I feel confident when I contribute my ideas.
Any mentors you would like to thank?
Two women who lived what was possible and believed I could get there too come to mind:
In graduate school, I studied algorithms with a fierce professor named Gerry Brady. Professor Brady called on me in every class and expected me to know the answers. Early in my program I felt like an imposter because of my non-traditional path, but since Professor Brady clearly believed I would know the answers I realized it must be possible for me to succeed.
At the following year’s incoming computer science student picnic, Professor Brady announced to the line of students queuing for pizza that I was the reason she had to make the class harder for them, since I had raised the bar. I’ll never forget that. Professor Brady believed in me, and in a degree program with so few women she embodied someone who could rise in computer science and helped me see myself like that too.
Jackie Milhans hired me to join her team at Northwestern’s Research Computing Service. Jackie has taught me so much about being effective and getting things done. One thing I learned from Jackie is that trying to be perfect all the time slows me down. She encouraged me to accept that I’m going to produce really good work 90% of the time, acceptable work 5% of the time, and not so great output 5% of the time, and that’s ok.
Jackie has also helped me effectively present and own my ideas. Instead of asking, “Should we do X?” she encouraged me to say, “We should do X and this is why.” Jackie’s astute feedback has pushed me to grow beyond what I thought I was capable of.