About
Hi, I'm Joe. I'm a software engineer with a PhD in Computer Science, a gardener, a DIYer, a lifelong gamer, and a dog dad. Mostly, though, I like to figure out how things work and then explain them to anyone who'll listen. Writing is how I do that.
Earthling in training
I like to call myself an earthling in training. Not because I think I'm an alien - it's more that we all are, really, from day one. We arrive as a blank slate of sorts and spend the rest of our lives learning how to live here. I'm still learning, and this site is where I write down what I find.
Work
I'm a Principal Software Engineer at Cloudvirga, where I've worked on mortgage software since 2021. These days that means setting standards across the engineering org (AI governance, API design, .NET coding, UX patterns), building an AI pull-request bot, and writing the context rules that let AI agents work reliably in a large codebase. I was named a HousingWire Rising Star in 2024.
Before that, I spent four years at Bently Nevada (GE / Baker Hughes), building machinery condition monitoring software, mentoring newer engineers, and getting a little obsessive about automated testing. And before that, I was Chief Data Scientist at LoadIQ, a small energy startup in Reno. An overly fancy title, I promise. I built unsupervised algorithms that took a building's total power signal and pulled it apart into individual appliances, which ranked second in an independent EPRI evaluation of energy disaggregation in 2016.
Research
My PhD is from West Virginia University (2014), advised by Dr. Tim Menzies. The dissertation was on search: finding the best answers to problems with many competing goals. Usually PhD theses sound much more complex. It is, I promise.
Here's the short version. In the summer of 2013 I worked at NASA Ames Research Center with Dr. Misty Davies on a model of how pilots coordinate their tasks while landing - airspeed, flaps, landing gear - and what happens when one gets missed or delayed. One small piece of that model took 7 seconds to run. That doesn't sound like much, until you learn that standard optimizers like NSGA-II run a model thousands of times. 7 seconds times 3,000 is about six hours.
So I built GALE, the Geometric Active Learner. Rather than searching more or less at random, GALE studies how the decisions relate to the outcomes, works out which direction the good answers lie in, and heads that way. It solved the pilot model in 30 to 50 runs - minutes instead of hours. I also builtJMOO, a Python framework for comparing optimizers fairly.
I've also published on what makes games replayable, which is where my book started, and presented at the NILM workshop on energy disaggregation.
Publications
- GALE: Geometric Active Learning for Search-Based Software Engineering
- Learning Mitigations for Pilot Issues When Landing Aircraft (via Multiobjective Optimization and Multiagent Simulations)
- Learning the Task Management Space of an Aircraft Approach Model
- Aspects of Replayability and Software Engineering: Towards a Methodology of Developing Games
- Graphical Closure Rules for Unsupervised Load Classification in NILM Systems
- Faster Evolutionary Multi-Objective Optimization via GALE, the Geometric Active Learner
- JMOO: Multi-Objective Optimization Tools for Fast Learning
- Exploring NextGen Aviation Technology for Efficient Approaches
- The PROMISE Repository of Empirical Software Engineering Data
Games
I love to play games, and I love to understand them even more. I'm writing a book calledWhat Makes a Game Fun? - a dive into the psychology of it, and why the NES still has my heart. Over the years I've made a couple dozen small games of my own, none of them published widely, and back in 2012 I wrote fan strategy guides for Final Fantasy Mystic Quest and Dragon Quest V. They're all on my portfolio.
Around the home
I garden in the Northern Nevada high desert, which is about as hard as it sounds. My backyard has twelve 4x8 square-foot garden beds laid out in what I call my desert garden amphitheater. I designed and built the greenhouse myself, architecture and all. I've also remodeled a bathroom from scratch, installed a mini-split A/C, and lost count of the smaller projects. Some of them will end up in Around the Home.
The pups
Reese is my beagle. He was rescued from a research lab, where he knew very little about how to be a pup. Today he's an extremely curious beagle with an astounding sense of possession: the things he likes are simply "mine."
Leia is a chihuahua-beagle mix who found us on May 4th, 2021. I was in the middle of remodeling the bathroom, and on what felt like our seventeenth trip to Home Depot, she jumped right into our car. My wife and I tried to find her owner, but she was so well-mannered that we decided to adopt her.
Training them is one of my favorite things. Ask me about their tricks - they absolutely love their "nummies."
Writing
I like teaching through content, and for me that's mostly writing. That's what this site is for: games, software, philosophy, the garden, and whatever else I'm learning as an earthling in training. Start with theseries.