I used to both love and dread the thought of autumn - seeing friends after the summer, starting new classes, homework (ugh!). But the distressing part lessened over the years, especially in and after college.
I did my undergraduate study at MIT in physics. In that department I was required to write a thesis, but it could be on anything, not necessarily even based in the physics department. I analyzed deep focus moonquakes (yes, quakes on the moon, induced from stress from the earth, in a monthly pattern), using data telemetered back from seismometers placed on the moon during various Apollo missions.
Since the quakes recurred monthly from a few dozen foci, it was possible to average quakes from each site over the months to improve the signal/noise ratio and get a better fix on each quake location site. My first job was to eyeball the records at a given site and pick start times to supply to a Fortran program that we wrote to time-correlate the traces and find a more accurate time for the best correlation. Once found, we would add the new trace into the stack that was already created.
However there were records that had more than the expected background noise, sometimes from postulated meteor hits or other lunar impacts, and maybe some other causes as well. And these went undetected in step one since we didn't want to print huge amounts of plots that we mostly didn't need. So, if the stacked results showed some unexpected noise, I would then track down the relevant seismic event. But initially, the way to remove this was to restack all the previous events from scratch, omitting the bad ones.
This was not just tedious, it was actually difficult. Why? Because the calculations were done on an IBM/360 to which we submitted card decks for the program and computer directives. So, to restack 4 traces, I would have to ask for the correct 4 tapes of data to be mounted on tape drives in read-only mode, and a fifth one in read-write mode to capture the output. I cannot tell you how many hours I spent in the consultants offices trying to get the JCL (job control language for IBMs) correct.
Discouraged by this, I "invented" my first programming tool. Instead of restacking all the good traces, I could simple subtract the bad one out of the previous output. Two tape drives - voila!
Next I headed to Scripps Institution of Oceanography at UC San Diego for graduate school. While working on my research for my PhD, I was using the Calcomp plotter. Basically, to plot data, you had to issue commands to the pens: pick up all pens, move to location (x1,y1), put down the red pen, move to (x2,y2), and so on. Very tedious! I got so fed up with it, that my thesis advisor, Bob Parker, and I wrote a program called plotxy, still in use today by some, to insulate analysis programs from having to know details about the plotter. My next real tool.
Bob also had this program, called Matrix, that he used himself and with students, to allow us to focus on our numerical work without getting bogged down in debugging Fortran (sound familiar?).
My next venture was in Woods Hole, at the Oceanographic. My first role was post-doc, and then researcher. I found that living in Woods Hole in the early 80s wasn't suitably urban for me.
Boston and MathWorks
I moved to Boston to a programming job - and then had the opportunity to see MATLAB for the first time. And Jack was trying to expand the company. I remember thinking two things. First, the job market was good, and if this little startup didn't pan out, I could easily get another job. Second, MATLAB resonated with me after using Bob's Matrix program; and MATLAB was more powerful, in part because of the extensibility. Nearly 25 years later, I am still here.
What have I been doing for those years? Lots of stuff, starting with writing the MATLAB code for the Remez exchange algorithm, a technique for designing filters for signals. I worked on the Signal Processing Toolbox first release, ported MATLAB to the Apollo computer, and over the years, contributed to at least the first releases of several other products such as Image Processing Toolbox, and the DSP Blockset, now known as DSP System Toolbox.
Along the way, I have talked to and met many customers, including lots from academia. These interactions have helped me understand how you use MATLAB, how you want to use MATLAB, what is preventing you from getting your work done the way you want, etc. Keeping in touch with you has been gratifying.
Fortunately I have particular outlets that are extremely helpful for me for staying in touch, including this blog. I periodically go out on academic tours in various countries (e.g., UK, Australia), or specific locations that sales or marketing ask me to attend. I have also been able to attend some educational workshops including a recurring one on DSP and SPE (signal processing in education) sponsored by IEEE. Again, great opportunities for me to talk to educators and students.
Who knew what I started in physics and geophysics that I would end up here?! The advice I have to students this term is to learn about broad topics that you can apply in many ways. The jobs you ultimately work in may not have even been invented yet. Stay open to different opportunities and seize them when they present themselves. After all, luck favors the prepared.