Information Systems Management (Alberta) Corporation
Summary
I was hired by ISMA to fill an opening in their Service Development Department. I worked on a number of interesting projects during my employment, but ultimately left when an excellent (and rare) opportunity to get into oil field embedded product development presented itself 10 months later. Work at ISMA was very good and the decision to leave was not easy, however, long term career objective were better met with the move, so I left to go to EVI Oiltools.
Employment Highlights
Post Processor - The Postprocessor was a program that processed mainframe print streams to make them suitable for printing on PC printers. This program was written in C and was executed on mainframe just before the data stream was sent to a printer. When I encountered the program source code it was extremely obfuscated and there was no documentation and anyone familiar with the source code had left the company. To make matters worse there were many features that were only half implemented as well as a lot of uncommented dead code. The goal was to strip the program of as many unused features and dead code as possible. What was left was to be documented so that future maintenance would be easier. I worked on the post processor for a 3 months cleaning and reorganizing it, and was probably some of the most obfuscated code I've seen to date. Once completed the code was less than half of it's original size. To add to this improvement I turned on compiler optimization to maximum to generate the fastest executing code possible. Given that the mainframe support 6000 users and Post Processor was executed every time a mainframe print job was sent to a printer, this improvement likely saved some significant CPU time.
Print Processor - In this project documents were generated on a PC that then had to travel over a mainframe network before being sent to a PC printer. The problem was that mainframes in some instances stripped characters out of the print streams as those characters are considered invalid. Thus the print files generated at the source would be corrupt by the time they made it to the destination. After at a number of possible solutions I decided that I would use a technique similar to UUEncode. Since the printers would be connected to an mainframe network interface box, I used a feature in these boxes that would decode the encoded print stream before it got to the printer. The encoding program was made to encode exactly match to the decoding ability of the printer network interface box. While the size of the print stream was inflated by more than 100%, the solution was completely transparent and preserved all text and graphics of the original document.
Tier III Support - The Service Development group was also responsible for tier III support. My support functions were various, but definitely biased towards resolving network printer issues. While few people enjoy doing support because of the monotony, I enjoyed the challenge of tier III support since the problems were rarely obvious and generally required intense problem solving skills. There was also a certain amount of colleague recognition for your ability to resolve problem quickly and concisely.
Conclusion