Let me introduce myself …

My main strength is my diverse skill set; I am a bit of a jack-of-all-trades when it comes computer science. A (computational) physicist by training, I have focused my career on developing software in mostly scientific computing-type environments, though I did enjoy a couple of years of working for for-profit companies early in my career. Along the way I’ve taken every opportunity that I could find to deepen my knowledge of computer science through self-study. Today, I’m using my knowledge of both physics and computer science to help understand and improve the performance of multi-physics applications running on the world’s fastest supercomputers. Tomorrow – of course I can’t predict what tomorrow will hold, but I know it will involve computer science and I’m excited.

Here’s a highlight of my skills and interests:

Physics Application Development/Scientific Software Development

For the majority of my career I have worked as a software developer on academic multi-physics codes running on small and large supercomputers. I have also spent a couple of years working on a commercial geophysics application for a company. The languages that I’m most familiar with and have gained proficiency in are C, Python, Fortran, and C++. Besides writing code, my roles typically include diagnosing and fixing all types of bugs, implemented new physics and other algorithms, porting codes to GPU-based supercomputers, adhering to modern software development practices like using Agile, Kanban, version control systems, Continuous Integration, unit testing, participating in all phases of the Software Development Life Cycle, and, of course, learning new programming models and languages, tools, and technologies as necessary.

High Performance Computing (HPC)

For almost all of my career I have been working in HPC environments, which has given me lots of experience with the Unix command line, as well as proficiency in computer architecture and operating system concepts. I started out as a graduate student running, as well as modifying, a 3D Smoothed Particle Hydrodynamics (SPH) code to study the morphology of the ejected debris in supernova explosions (my findings were published in a few articles in the Astrophysical Journal). I have used a number of different supercomputers, from smaller ones up to the world’s largest (e.g. those at Arizona State University, Texas Advanced Computing Center, Los Alamos National Laboratory) for running simulations of multi-physics codes. I have also modified those multi-physics codes, done some parallel programming using Message Passing Interface (MPI), OpenMP, and GPU programming, as well as analyzed and debugged performance issues.

Performance Engineering

Working on and with large scientific applications, where the runtime efficiency really matters, sooner or later leads to having to tackle performance concerns, and thus the focus of my work several years ago shifted towards performance engineering. I started working on the Performance Engineering team at LANL where I designed and was in charge of building a customized performance monitoring system of key multi-physics applications (running, of course, on in-house supercomputers). I am now leaning in to other aspects of performance engineering, and am conducting targeted performance analyses of those multi-physics applications and learning about strategic approaches to performance optimization.

Machine Learning/ Artificial Intelligence (ML/AI)

ML/AI is an interest that I developed a number of years ago. I have taken several classes over the years (like Andrew Ng’s original Coursera course “Introduction to Machine Learning”), and I am now mentoring a student to use Large Language Models (LLMs) to explore their usability for theoretical performance modeling of scientific code bases. It’s a fun and exciting learning experience for both of us!

Cyber security

This is a more recent interest that transitioned from a state of casual curiosity to passionate interest when I discovered the websites tryhackme.com (THM) and hackthebox.com (HTB). I found THM to be more approachable initially and I started there with the “Pre-security” learning path, which I finished recently, and am now working through the “Complete Beginnger” learning path. Hopefully soon I will be able to use my new skills to compete in some of the challenge rooms on THM.

Other

When I’m not spending my time on computers, I like to stay active through weightlifting, hiking, horseback riding, or ballet, and I like to express my creativity through clothes-making/sewing and crocheting.