Why am I a software engineer? -- by Joe Willcoxson
Short Story:
I learned to code to perform my job as a systems engineer working on radar, electronic warfare, and avionics systems. Developing code was enjoyable to me and as a result, I self taught on object oriented programming, C++, and Windows development while working at Edwards AFB for USAF. After performing software development as one facet of my job, I decided that I would prefer to develop software full time rather than my job as a systems engineer. While pursuing this goal, I had a position lined up at another squadron at Edwards AFB to write software full time, but the head engineer at the F-16 squadron blocked my transfer. So, I left Edwards AFB, moved to Oklahoma and took a job with WorldCom. After 16 months there, I saw an opportunity in Tulsa to work for a commercial software company named StatSoft to develop Statistica. I was there in its various incarnations (StatSoft, Dell, Quest, TIBCO) from April 1996 to November 2020.
Long Story:
I had some great teachers in high school--especially Mr. Seablom (chemistry). Mr. Seablom inspired me to go to Michigan Tech and to study chemical engineering. The first year of Michigan Tech went well, but then during my sophomore year, I came to the conclusion that I didn’t want to be a chemical engineer. The 11 hours per week in a chem lab was something I did not want more of. So, after the first semester of my sophomore year, I changed my major to electrical engineering. I ended up with an emphasis in control systems and computer engineering. For the degree, we had to write assembly language programs for engineering projects, but we also had to take some CS courses like introduction to Pascal. I disliked the Pascal class. I don’t know if it was the teacher or the expectations of the teacher, but it just didn’t inspire me. I find this funny now because Turbo Pascal would become the “gateway drug” for my becoming a full time developer.
After graduating with an electrical engineering degree, I took a job with General Dynamics (now Lockheed). My job was to work on the integration, test, and analysis of the fire control radar of the F-16. I had some good senior engineers mentoring me. One of them wanted me to get involved in determining the tracking accuracy of the radar--to determine whether it was meeting the specifications in the contract. He had written software that took individual tracking runs and using Fortran on a VAX determined the mean and standard deviation for each run. However, after all these individual run results were calculated, they needed to be entered into a Visicalc spreadsheet on an Apple II to get the final results. I was recruited to be the glorified secretary that entered the results in the spreadsheet, and then came up with the final weighed results. After doing this for several iterations, I thought that this was a bad way to do it. First, it was a lot of manual work, second because it was subject to input error, and third, because the information was already on the VAX. I talked Jim into letting me write a Fortran program on the VAX so that we could collate all the results there. Once it was finished, then we never hand entered the data into Visicalc again. I found that I enjoyed this, but it was just part of my job as an engineer.
Move ahead a few years… I had taken a job with USAF at the Air Force Flight Test Center, Edwards Air Force Base. My job was as a systems engineer working on the radar seeker for the Tacit Rainbow anti-radiation cruise missile. Part of the job was to evaluate the tracking accuracy of the seeker. Since we were a special access program, the management decided that we would write all of our own data processing software, and the leader of our group decided it would be written in Turbo Pascal. I arrived a few months before my predecessor took a new assignment at another base, so we had time to overlap. He had written the bulk of the software, but it was slow and used AutoCAD to make plots. It would take nearly all day to run the software and produce the plots. I bought some books on Turbo Pascal and figured out a way to produce results in 30 minutes instead of taking most of a day. I enjoyed this immensely. Then, our old boss was replaced with Captain Jones. Capt. Jones was a Turbo Pascal whiz. He had written his own code/text editor in Turbo Pascal using a toolkit. He taught me a lot. WIth his help, I learned how to interface a 9-track tape reader to Turbo Pascal. We used this to read electronic intelligence (ELINT) reports. This ability to read 9-track tapes helped me on my next assignment at Edwards. When the Tacit Rainbow project wound down, Capt. Jones took a job with the F-16 test squadron and he dragged me along with him. We took jobs in the Electronic Warfare branch. He was the boss, and I was one of the workers. One of the first things Capt Jones assigned me was to analyze the data from the ALR-56M radar warning receiver. The flight test data from the MIL-STD-1553 bus came on….tada… a 9-track tape. So, Capt Jones requisitioned the 9-track tape reader from Tacit Rainbow and it became property of the EW branch for the F-16 squadron. Using contractor specifications from both General Dynamics and Raytheon, I developed software that provided useful performance reports for the radar warning receiver. Later on, in order to plot the data, we petitioned the squadron IT department to purchase Grapher, a graphics program we had used at Tacit Rainbow. The software only cost $200, but management had decided that was too much and not a priority. So, what do you do? Well, for us, I decided to learn Windows GUI development using Turbo Pascal for Windows to develop our own software to make graphs. So, I don’t know how many billable hours I used to develop the software, but it was certainly more than $200 worth.
One of the big turning points for me was winning the Golden Quill award at Edwards AFB. The “product” of Edwards is the reports from flight tests. I was the main author of the seeker, navigation and guidance report for the Tacit Rainbow missile. That report was selected as the best for 1991 and the award was a small cash award, and the chance to attend any professional conference I wanted. For the professional conference, I chose the Borland developer’s conference. Borland was the maker of Turbo Pascal, Turbo C++, and some other development products. I chose that conference to 1) learn something, and 2) receive a suite of Borland development products. Maybe reason 2 should be reason 1? Maybe. I wanted to get my hands on a C++ compiler so I could learn C++. The hottest and most in demand language at the time was C/C++. Already at this time I could see a future as a software developer, and when I looked at classified ads for developers, there was hardly any call for Pascal. Most of the ads were for C/C++. If I wanted to make a future for myself as a software developer, I needed a language other than Pascal.
I went to the conference, got my huge bundle of Borland software, attended some C++ sessions, and went home to continue to learn it. As I learned C++, in time it began to supplant my Pascal development. For processing avionics data, I began to use C++. I ended up being recruited to work in the Special Projects branch of the F-16 Combined Test Force (CTF). For that work I had to apply for a TOP SECRET clearance and I couldn’t even tell my boss what I was doing. One thing missing there was good data processing to examine the systems we were testing. I developed a system to query the MIL-STD-1553 bus data and to generate reports for the system under test. Being more confident of my abilities, I pursued a job on the base doing software development full time. A former co-worker was in charge of the flight test data at the USAF Test Pilot School (TPS). He offered me a job to transfer to the TPS as a software developer. However, the engineering manager at the F-16 squadron blocked my transfer. After having my transfer blocked, I began looking for work off the base, eventually taking a job with WilTel (later WorldCom/Verizon) in Tulsa, Oklahoma. I was hired as an “Object Developer” in the IT Strategies group.
In the IT Strategies group, I developed and taught curriculum (C++, Windows GUI, and sockets programming). I evaluated, tested, and recommended cross platform GUI tools, and I developed a database management tool for the internal security database. It was interesting, but I grew weary of the environment at WorldCom. While perusing the old and now defunct Dr. Dobb’s Journal, I saw an advertisement for Statistica. One of my fellow engineers at Edwards AFB had shown me some data they had analyzed using Statistica at one time. While viewing the ad, I looked at the bottom of the page, and I saw that the mailing address was Tulsa, Oklahoma. What a surprise! Being curious, I went to the website and saw that StatSoft was hiring for C/C++ Windows developers. It was as close to my dream job as I could imagine at that time. I sent in my resume and in two days I was contacted by the president and founder of the company. A few days later, on a Saturday, I went into a few hour grilling by the two lead engineers about my knowledge and experience. I walked out that afternoon with an offer to join StatSoft. In less than a week I was interviewed and hired. I finally had my dream of working for a shrink wrap software company and seeing my work being used all over the world.