Please tell us about yourself
I was born and raised in Denver, Colorado. I developed an interest in the geosciences from an early age through my grandfather, who was a geologist for many years. I studied geophysics at the Colorado School of Mines. Interestingly, I had almost no prior coding experience before my sophomore year at Mines, when I took an introductory programming course with Dave Hale that sparked a passion for coding and changed the trajectory of my studies and career.
After Mines, I have had the good fortune of working with talented individuals across a variety of companies. Most of my work has been on software and R&D for oil and gas service companies. Recently, I transitioned out of the energy industry and into the broader tech industry at large as a data scientist.
When did you first hear about Madagascar?
I first heard about Madagascar from Paul Sava at CSM when he introduced it to us in one of his classes. My initial thought was that it was overly complicated for what we were trying to accomplish, especially because there was still a strong SeismicUnix (SU) faction at Mines back then. After I took a course in seismic data processing using SU though I was convinced of the merits of Madagascar and never looked back.
What was the most difficult part in learning Madagascar?
Without a doubt SCons. There's a lot of magic going on with SCons that is very difficult for newbies to understand. That said, it's apparent now that incorporating SCons with Madagascar was a stroke of genius, as it really set Madagascar apart from its predecessors that were still relying on Bash scripts or Makefiles to orchestrate these individually powerful programs into coordinated processing flows. SCons opens up so many additional possibilities that are just really hard to imagine in these other scripting languages. Additionally, using a build-system like SCons in this way was ahead of its time. It's taken many years for projects in other fields to catch up.
From your contributions to Madagascar, which one is your favorite?
From the publicly accessible contributions, I think tkMadagascar was one of my most fun contributions. It wasn't super practical, but I heard through the grapevine that it did help some people understand how Madagascar works under the hood. I think my most useful contribution was probably some of the work that I did to adapt Madagascar for use on the HPC system at Mines -- I wrote a pre-processor for SCons that automatically converts SConstructs to parallelized jobs that can run on a cluster. I understand that's still in use today.
What advice would you give to those who wish to learn Madagascar or to contribute to it?
I'd say that every contribution is valuable, regardless of how seemingly big or small it is at the time. Also, there are still a ton of interesting projects to work on!