0101 Ed Paay's Career Memoirs.

It has been an adventure… I was born in Rotterdam, The Netherlands (a.k.a. Holland) and was lucky to still grow up in a stable functional society from which I have many fond memories and before it became drug infested and before it got the dubious distinction of being one of the European cities with the largest Muslim populations due to immigration, but that is yet another story. When I was in my teens my family immigrated to Australia in 1970, where I lived for almost 20 years and attended college studying electronic engineering with an emphasis on digital electronics and microprocessor systems. This was in the late 1970s, completing my studies in the early 1980s. I got into electronics as a hobby in my teens and became an early computer enthusiast when CPU evaluation kits became available and around the time I attended college, microprocessor based personal computers came on the scene, like the Apple I and TRS-80. I bought a TRS-80, since I liked the Zilog Z80 CPU in preference to the weaker MOS 6502 processor used by Apple. However, I soon bypassed the Microsoft Basic in the TRS-80 and starting writing code in Z80 assembler language. However, since the TRS-80 had a ROM based BASIC interpreter containing the equivalent to what we today may call a BIOS it was desirable to be able to call the basic I/O routines from Z80 assembler code. This was never documented by Microsoft or Radio-Shack/Tandy so I wrote a disassembler for Z80 object code and disassembled and reverse engineered the Basic interpreter to find the I/O routines and produced the “TRS-80 ROM Reference Manual” which documented the entry points of useful routines available in the TRS-80 ROM code. Also during this time user groups were forming and I joined one of these and started writing software for sale and teaching others in the user group how to program in Z80 assembly language. This was an exciting and fun time given that PC technologies were still developing and one was able to play a role in its development.

After completing college my first employment was designing micro-processor boards, memory cards and I/O controllers and peripherals for printers and the like and writing articles for an early TRS-80 PC magazine called Micro-80 based in Adelaide, South Australia. Meanwhile the company was growing and made me Technical Manager in charge of developing peripherals for TRS-80's, IBM PC's and other compatible systems in addition to  managing technicians in the service department. I worked at this job for about 3 years when they started selling multi-user computer systems based on MP/M and sold one of these systems to Hilton International Hotels which was expanding in Australia by building large 5 star hotels in the capital cities. In those days there were few applications available and they had to be developed as part of the sale. I was asked if I could do this and I agreed and ever since I have been developing software professionally. I developed software applications for Sales and Marketing and for managing and planning Banquets and Conventions in an early version of dBase. This was a successful project and later Hilton International ended up offering me employment as Information Systems Manager to develop more PC applications and to manage two IBM System 36 mini computers which ran the Hotel rooming and bookings software as well as point-of-sale systems based in Brisbane, Queensland, Australia.

Around that time, but before I moved to Brisbane, the IBM PC had appeared and I started writing software for MS-DOS based systems exclusively using Turbo Pascal by Borland as it was a proper compiled programming language and more powerful and faster than the interpreted languages like BASIC etc. This was before Microsoft Windows and SQL databases came on the scene. Therefore, the applications at the time were typically character based applications with data input/display screens with data fields to be displayed and edited; it was cumbersome to layout these screens and to connect the data fields to records in a file needing much manual typing and adjusting the locations etc. I also wanted to avoid having to manually code the database access.  So thinking about this, I decided to create a kind of code generator and Rapid Application Development system with a screen designer (later ported to Windows) for data input and display and also a report generator as well as a relational database editor / generator.  Since this was before SQL databases were known or available, it used b+ trees for indexes and random access files for the data.  I developed the first system in Turbo Pascal and started using it for my own software development needs.  Using this system, I could now literally create applications in days that took weeks before as it generated all the code for me ready to compile.  So it was obvious that I was much more productive and when I demoed the system to some of my peers, it was decided to further develop and market the system for sale in our spare time as a side business.  This system, enhanced for general use was sold until about 1994 under the name DataBoss.  Using this system, various software packages were developed and sold and the system was eventually extended to have windows and was even ported to the UNIX operating system as well as to be able to generate C++ at that time.

Then in 1987, I was asked to come over to the USA to do some consulting for a company in San Francisco that specialized in banking software.  They wanted me to help them design and create banking software using a specialized version of the DataBoss system and extend it to include certain communications protocols to communicate with and extract data from bank mainframes.  I worked on this project first in San Francisco and remotely in Australia, but in 1988, I was offered a position to work with them full-time in San Diego, CA which I accepted.  Then in 1989 they struck a deal with a company in Spokane, Washington called ISC / Bunker-Ramo (later purchased by Olivetti) to work together with them and develop their Pinnacle PC product for banks using the DataBoss development system and I worked on that project until December 1990.  I also did a lot of X86 interrupt driven real-time assembly language programming for terminal emulator and communications software so that the system could communicate with mainframes common in banks at that time like Burroughs and NCR.  At the end of 1990 my visa had run out and I decided not to stay as an illegal alien and wait until I could return legally to the U.S. However, in the meantime I ended up being able to get legal immigration to Canada in 1991.

Focusing on Windows Development

I worked in Vancouver, BC for a few years first as a Software Development manager for a local company from 1991 until early 1993.  Then in late in 1993, I free lanced and wrote the “House by Mouse” software for National Real-Estate Company.  They had released a DOS version which was mentioned on a radio news broadcast as I was driving home one day.  Now at that time I had trained myself in Windows development using the Win32 messaging API.  So I went and got hold of this software and it was very rudimentary and awkward to use; it was screaming for a Windows version.  So I phoned them and contacted the software team at the company and asked them if they would be interested in a Windows version… they obviously did not know how to go about this but were “planning” for this.  Subsequently, I met with them and contracted to do the work.  So I designed and wrote the system for them and subsequently helped their developers to come up to speed with Windows development.   

This was before the internet was commonly available, so this software was handed out to the general public on a floppy disk allowing them to view listings with pictures of properties and it had search capabilities.  It connected to a server via modem where it downloaded compressed information and pictures to view.  The system was written with Borland Object Pascal using the Win32 APIs.  I had rejected C++ in which I had done some work up to that point as a more awkward programming language and used Borland Object Pascal with great success.  Borland’s compilers were much faster than Microsoft’s compilers and Borland’s Pascal also generated much faster code than both Microsoft’s and Borland’s own C++ compilers.  And hey, Pascal had real strings (like C# does today) instead of these clumsy string pointers which often caused null pointer crashes those days.  This was a highly successful project and made me known as a Windows “expert” at that time; so from then on, I concentrated on Windows development exclusively. 

However, at the end of the project I decided to leave Vancouver as it was one of the most expensive cities to live in at that time and moved to Calgary, Alberta which I found to my liking.  I ended up working for a consulting company called Minerva and worked on a number of projects mainly for local oil and gas companies like Petro Canada.  Then around 1996, I was finally accepted for legal immigration into the united states and worked in Portland, Oregon for a while for ODS a Dental Insurance Company, as Software Development Manager to oversee development of their so called “Daisy” software providing insurance and accounting features as well as scheduling for Dental offices.  Then around late 1997, I was asked to return to San Diego to work for the same company as before in 1988, mostly to work as a senior consultant even though they gave me the title of “Vice President of Development”.  I accepted and I developed a Windows based application similar to a Desktop Publishing system using data sourced from IBM mainframes and able to design formatted text for printed statements such as credit card statements and the like.  Up to that point COBOL programmers were extracting the data and creating code to drive the high speed printers which was a slow and tedious process.  With this new software they could now design the statements or form letters on screen, see what they would look like with the fonts and sizes selected as well as images and then send them to the printers to be batched. 

By 2000 things changed due to the so called “dot-com crash” and work was harder to come by so I moved to Boise, Idaho to wait until the industry might recover since it was economical to live there and was within a day’s drive or so to Portland, Seattle, Vancouver and Calgary, places I had friends and worked before. Since then I have worked in Boise in various jobs mostly as a consultant or contractor but also as Software Development Manager for URS (previously Washington Group) a large engineering company.  While there, I worked on a large application used by the company to quickly create accurate quotes for large engineering and building contracts like buildings, bridges, roads and even nuclear power stations and the like called “CASE”. Today, I consider myself semi-retired but still hire myself out for contracts developing software using Visual Studio, programming in C# and either ASP.NET MVC or desktop applications in WPF or WinForms.

Software Development Today

The industry has changed much, technologies have come and gone, development paradigms have come and gone and the industry has been rife with fads that lasted a few years at best and did nothing to make software development any better or faster. I guess one can see parallels in other industries in the past where not the best or most brilliant technologies win out due to politics and various “power brokers” in the industry. The software industry has tended to have outspoken marketers of various paradigms or technologies that are marketed with what could be called religious fervor at times that cause the industry to be “fad” driven. The result is that every 18 months or so something “new” will arrive and you have to retrain yourself to ensure you stay current. I have seen “Functional Programming” being touted as the way to go in the 1970s and “Object Oriented Programming” replacing it in the 1980s. I observed that many software developers were writing bad code no matter what paradigms they used and that good developers could write good, easy to maintain code and frameworks in either. Ironically today, the industry has regressed to writing applications in JavaScript, which does not support proper Object Orientation and is hard to maintain and debug. But with the advent of smart phones which are supplanting the desktop computer, at least for consumers; there are more platforms than ever and the one common denominator has been web based applications. So now there are software developers that only know web based technologies and JavaScript causing them to see the world through a JavaScript / Browser view. They are generating complex, difficult to maintain applications that even use JavaScript on the server with frameworks like node.js etc. Microsoft of late has happily jumped on this bandwagon with their Visual Studio tooling and we will have to see where all this will lead. Perhaps we will see some new technologies come on the scene to supplant this in the future…