I have had somewhat of a convoluted work background that I hope speaks to my versatility and interest in many areas.
Out of high school, I entered university to study Biochemistry. I graduated in 1989 and became a lab technician performing medical genetics tests. While I thought that this was my ultimate career, somehow I ended up being disappointed in biochemistry and genetics as a day-to-day work task. Although the technology was interesting, I found that the daily tasks ended up being quite menial after awhile. For instance, something such as sequencing a human genome is incredibly valuable to the knowledge base for humanity. However, performing this task means pouring sequencing reactions and running gels day after day after endless day. I guess in the end, I learned something about my desired job. Kudos to the geneticists who can do these tedious tasks for the betterment of humankind.
Finally in 1991, I was done with genetics, biochemistry, and medical work in general. At this point, I still desired a technical career but decided to train in Electrical Engineering. I completed this new degree in 1994 after 3 years of studies. To start my career, I think that I was looking to specialize in telecommunications.
To push myself in the direction of telecommunications, I took on a contract with Telecommunications Research Laboratories (TR Labs) in Edmonton. Dr. Wayne Grover was undertaking some network allocation studies for the former MCI (before WorldCom took it over) to optimize the allocation of optical fiber (OC-1 -> OC-32) in the United States SONET network. We were provided with typical routing demands between 100 and 200 CO (central office) locations. Using algorithms such as mesh allocation, ring allocation, and simple point-point protection, TR Labs undertook to determine the approach which would allow for node-node protection throughout the network. In the end, we determined that the mesh allocation was optimal and undertook further studies on that algorithm. I learned to develop C and C++ applications on UNIX starting at TR Labs. However, this place was the only place that I have seen a quadruple pointer! (e.g. int ****ptr). Yep, those grad students may not develop a program to be supportable but they do get the work done. After 10 months at TR Labs, the contract was ending since the telco was satisfied with our results.
At this point, I had 3 options to me. I had the option of pursuing graduate studies, Nortel Networks offered me a technical writing position, and I had interviewed with SCADA provider called Willowglen Systems. SCADA stands for Supervisory Control And Data Aquisition. Essentially SCADA is IT for engineering applications and allows for monitoring and control of instrumentation on the factory floor, pipeline, or industrial plant. I chose the position at Willowglen Systems since:
The position at Willowglen Systems was actually a very mature position for a fairly new graduate and I appreciate the opportunity that I had there moreso now than when I worked there. I developed historical applications such as a reporting tool, a trending package, and a realtime historian and archive process. The software was developed on Solaris Unix using C++ and Motif. In addition to the software development, I gained a good background in database design in working with the historical database and designing the tables with indexes and stored procedures. Eventually after mostly finishing my work after several months of 55-hour work weeks, I decided to move onto Total Control Products to develop control systems software for the Windows platform.
Total Control Products introduced me to PLC programming, IEC1131-3 control languages, and Windows programming. Although I had developed a trending tool at Willowglen using multiple threads, this position allowed me to develop multi-threaded applications using Windows APIs. In this case, I was using Visual C++, Borland C++, and the Win32 API. In addition to the development of the multi-threaded Windows service which was the PC control engine, I was able to work with the user interface which was developed using COM. I worked on an I/O tool which was used to configure the communication protocols for the PC control engine. I was able to work with ladder logic and sequential function chart PLC languages.
In 2000, I looked to return to Calgary where I had originally attended university. I obtained a position at Megasys Computer Technologies and returned to my original love of telecommunications. Again, I was working with a multi-threaded application. In this position, I worked with a telecommunications management software package that had strong similarities to a SCADA program. The package was ported from a VMS-only product to one which was supported on Linux, Compaq Tru64, and Solaris. This was a major exercise in creating OS independence for the product. In addition to work with a couple of SONET protocols, I worked with the C++ standard template library (STL) and gained new experience with POSIX threads.
Due to the increasing instability in the telecommunications arena, I decided to locate a position at Metso Automation in Calgary. Strangely, this had been a company that I had been interested in for over 5 years. It was a return to working in SCADA systems but, in retrospect, I did make a wrong career move at this point. This position never reached up to it's promise. Mostly, I worked with customizing the base SCADA product for customers. I developed a small proportional control application, improved a Windows reporting package, worked with a Powerbuilder-based gas application interface and gained some PowerBuilder (8.0.2) and database design work. This work was novel compared to previous experience and gave me some knowledge of flow measurement algorithms. I had considerable documentation and customer support work in this position. However, in the end, the manager of our department was not able to make a profit and hapless Susan Gardner lost $1M for 2003 despite major heroics by many in our department. In 2003, she laid several of the newer hires off before being demoted to sales.
Perhaps the good aspect of being laid off in 2003 was the fact that I was able to look at my career and realized that I wanted to stress my SCADA/control systems background instead of simply being a software developer. I ran into a great position at GE Energy in Calgary as they were developing a Cimplicity HMI-based SCADA product for the electrical substation market. This has been a great opportunity to use my Cimplicity and SCADA background. It will be great to work with iFix products at some point and hopefully this will happen soon since Cimplicity and iFix are both now GE Fanuc products. Unfortunately, the relentless GE outsourcing trend to LCC's (low cost centers) may mean the end of my position at some point in the future but this position has certainly been rewarding.