When I was in middle school, computers were just starting to become available to people. My ﬁrst computer was an Apple II+. It had two ﬂoppy drives and a green-text 13-inch monitor. In order to play games on this computer, you had to program them yourself. In school we learned a language called Logo, which allowed you to draw shapes and such. We then learned a little bit of Basic, which we could use to make games. In high school, I took a French class, but realized that I was not very good at languages (since I was not very good at English, it was no surprise that I was horrible at French). I ended up dropping this class and taking the introduction to computer programming class. I was the youngest person in the class and the best student, which won me many friends. My stepmother was a computer programmer and she had an IBM-PC. Since I expressed interest in programming also, they bought me a PC-jr, which was very similar to a PC but scaled down. I programmed many games on that computer. When I went off to college, I inherited my stepmother’s IBM-PC. I was one of the only kids in my dorm with a computer. I wrote term papers and such on my computer, while writing codes to help solve physics problems. In the spring, when we would move a bunch of our furniture outside to study, I would set up my computer outside (I got shocked many times due to my PC being steel and very conductive.) I took as many computer programming classes as I could while being a physics major and a math minor. My ﬁnal project for one of my physics classes was calculating the mass needed to lift an object into orbit. I programmed this calculation in Pascal on my PC, outputting the calculations to the screen, so I could plot them on a sheet of graph paper.
As an undergraduate, I had the opportunity to participate in a Research Experiences for Undergraduates program, where I helped to write a 3D visualization tool for a plasma physics code. I learned that you can make very cool animations while programming. I also learned that physics relies on computers a great deal. One of the joys of science is that you can solve problems using computer programs. They help to describe how the world works and they allow researchers to visualize data from both instruments and simulations.
With programming, one learns very quickly that the vast majority of time is not spent in writing the code, but in debugging what you have written. It is extremely common that you mistype a character here and there, forget something, or even think about something in the wrong way. The skills that I have developed as a programmer, namely debugging and learning how to develop programs in a rapid way to minimize the need for debugging (i.e., rapid prototyping and breaking problems into small chunks that are easy to solve) have made me a good researcher. I constantly ask, “How can we simplify this problem so we can understand it?”
My father is a woodworker -not as a profession, but as a hobby. He makes furniture and works on house projects. While I was growing up he reﬁnished two kitchens. He added an addition to his house; not that he had someone construct the addition – he did all of the work that he could himself, and for the heavy stuff (putting in large headers and such) he got one of his friend to help him. I learned from my dad that you can do anything you put your mind to. When my wife and I bought a really horrible house while living in Texas, we ripped all of the drywall out of the house, completely rewired it ourselves, and put up new drywall. In our ﬁrst house in Michigan, we modified the layout of our second ﬂoor, adding another bedroom. We then did much of the work in building our own house north of Ann Arbor (my wife was the general contractor while I did a lot of the labor, like building the kitchen and stairs, installing hardwood ﬂoors and installing all of the plumbing in the house).
How does this relate to research? I have the same attitude about building a house as I have toward research—nothing is impossible. Everything needs to be broken down into steps and you have to learn how to do all of those steps. It may take some time to learn to do it, but you will eventually get there. When I ﬁrst started as a researcher, I programmed. I used other people’s codes and then modiﬁed them to work more efﬁciently. I built my own models that were improvements over existing models. I still do this, and very much enjoy this aspect of my career. At the same time, I have always felt that there was something missing. Namely, this has been hardware. Indeed, the second year that I worked at the university, I built a computer cluster from scratch so that we could run test problems of our code locally instead of on the Cray supercomputer. I very much enjoyed this experience, but this did not actually help accomplish much research.
When I was given the opportunity to teach the Space Instrumentation class, it allowed me to explore hardware in more detail. When I eventually turned it into a high-altitude balloon class, it allowed me to “play” with hardware a lot more, but it did was not really included in my research much at all.
The dramatic increase in the System’s Engineering Masters program in our department and the hiring of Professor James (Jamie) Cutler allowed me to start to really become vested in hardware projects. Jamie and his students built a CubeSat. Working with them, I proposed a CubeSat to the National Science Foundation. This was awarded. Around the same time, I came up with the idea of ﬂying many CubeSats to try to measure the dynamics of the global system instead of typical single point measurements that can only provide the climatology of the system. I have been pursuing this idea over the last few years.
One way that I have pursued it was to talk to someone at Southwest Research Institute who suggested we propose some sort of constellation to NASA for their Earth Venture II program. I discussed this idea with Professor Chris Ruf, who came up with using simple GPS signals to measure the wind speed over the ocean on many satellites. We wrote the proposal and won the CYGNSS mission. I am the project scientist for CYGNSS and am heavily involved in simulating the orbits of the spacecraft. Hardware and software in one project!
I envision that my career will continue along the parallel paths of building sophisticated simulations and pursuing hardware projects. These activities are extremely synergistic, considering that simulations without data are not believable, while data without simulations are often extremely hard to interpret.