My name is Stephen Johnson and I have been a software developer for over 40 years. A profession, in which, that I really enjoy working. Programming has been easy for me from the day I started learning Machine Code on a Control Data 3350. I discovered that I had a natural ability. From that day, I have used that ability to learn many programming languages and help teach them to others.
I received my first programming opportunity in 1974 while still attending Control Data Institute (CDI) in programming technology. I had just completed the CDI hardware school a few months prior with a 93.7% average. I was working for an electronics manufacturing company, International Power Machines Corporation (IPM), as an electronics technician, when the company received a Hewlett Packard 2100 from a sister company. The HP 2100 was running the Test-Oriented-Disk-System (TODS). IPM gave me the opportunity to write System and Application programs for the company because they knew I was attending programming school. My language choices were HP Assembler, Fortran II, and Automatic Test System (ATS) BASIC, (which had no alpha processing capability). During this time, I completed the CDI course with a 99.4% average.
Since the Hewlett Packard 2100 computer and operating system was designed to test printed circuit boards and not business processing, it had none of the usual data processing utilities like Print, Copy, or a Sort Utility. I spent the first few months writing utilities like sequential and indexed, logical record read/write/update routines, and system clock functions and created a library general business processing functions. These library functions were written as universal modules with most of the attributes and functionality of what is commonly called Object-Oriented today.
After completing enough of the system Modules, I started writing a Bill-of-Materials (BOM) System that included an Editor, a BOM Explosion and Print utilities, and many Inventory Control functions. All of this was done with no help, no supervision, no experience, or anyone to tell me how to do it. I had to figure it out all on my own. I made my share of mistakes, but I learned from them, and developed better functions and utilities.
In addition to normal Inventory Control programs I also developed a new language which allowed an engineer to reduce the time it took to create a Point-to-Point wire list from 7-10 days to 1 day. The language was dubbed WLGEN for Wire List generator.
Two years later the company changed to a Datapoint computer, which was a multitasking, multi-user, Local Area Network (LAN) system which gave me another opportunity to recreate the Inventory Control, Bill-of-Material processing, a new Shop Floor Control and Purchasing systems as on-line, Interactive Systems. Within two years, these systems helped the company grow from a $7 million-per-year to company $25 million-per-year company virtually overnight. The original Wire List System (from the HP) was rewritten in Macro Assembler and further reduced the engineering time.
More applications were needed and since all of the languages available on the Datapoint system were limited (Datashare, an interpretive language, COBOL, RPG II, and Macro Assembler), I needed another language that would make it simpler to program and faster to execute. None of the languages were well suited for the tasks I needed to perform, and the company did not want to spend any money on a new language. Therefore in 1979 I started creating my own language on my own time. Written in Datapoint Macro Assembler, the new language used the Datashare syntax, like much of our existing programs. This new language gave me the ability to write new programs and/or systems quickly because I, and my one-person staff, was already experienced in Datashare. In addition, this new language, provided functions that were either not available or inadequate with the other languages. The language was compled in two years and dubbed DIRTBOL, but that another story.
With these achievements, the company gave me a third opportunity in 1980. To develop a new operating system for the Z-80 Microprocessor using an HP 64000 development system. Within 5 months I learned the Z-80 instruction set, the HP 64000 Macro Assembler, and I developed a multi-tasking operating system, complete with multiple applications which were to replace analog measuring devices (meters) on an Uninterruptable Power Supply (UPS) with digital devices (CRT, Printers, etc...). Functions included a real-time clock, all device drivers, and a 24-digit, floating point math package, which was used to determine how much time a battery would last, with varying loads on the UPS, by plotting the slope of the battery discharge curve. The calculation was accurate to within one minute of determining when the UPS would turn itself off after the primary power failed.
In 1984, while working as an Independent Software Contractor, International Power Machines Corporation gave me another opportunity. I was hired to convert the existing Datapoint Inventory Control system to a DEC VAX MRP system. I was unfamiliar with the DEC VAX and its operating system but the people at IPM knew I could handle it. . In addition to leaning the operating system and another language (Fortran IV), all conversion work was completed within six months when, according to software vendor, it normally took two years. In addition to the Datapoint to DEC VAX conversions, the Wire List System was again rewritten in Fortran IV and further reduced the time to less than an hour.
In early 1986 still as an Independent Contractor, I obtained an opportunity from Croton Services, Inc. (a Datapoint Hardware service company) to write several Hardware Diagnostic Utilities. These diagnostics were used to test various hardware functions for proper operation. I wrote several Printer and Disk Drive diagnostics utilities. Since these diagnostics had to be written to be executed without the benefit an any operating system, they had to contain their own keyboard input and screen output drivers as well as all the drivers for the hardware to be tested. With the acceptance of the owners, I wrote all of the diagnostic utilities in DIRTBOL which has been modified to supply the stand-alone drivers that were required.
I obtained another opportunity in late 1986 with Swift Independent Packing Company, a meat packing company. I was introduced to the IBM System/38 and within six months I had not only learned the operating system (CPF), and two new languages (Control Language (CL) and RPG III), I developed a Help Desk (problem tracking) system, which was the only one of it's kind on this platform and has since been sold worldwide. The system was later redesigned and rewritten for the AS/400.
In late 1995 while working for Prentiss Properties Limited, Inc (a Property Management company) I learned Visual Basic 3.0 (and all versions thru .NET 2005) and have been writing in it almost exclusively, for company related functions, since that time. Visual Basic applications include:
AnyCall - Tenant Work Order System (Purchased from another). I have modified, or added, as much to it as was purchased.
Preventive Maintenance Planner (Also purchased) but several modifications.
Prentiss Communications Connectivity Utility (PCOMCON) which auto-configurations and interfaces with IBM's Personal Communications/400 System (via DDE) which is used to access the many AS/400 via dial-up lines.
A Software Distribution Utility, which is used to create all diskettes used in software distribution to all of our branches and logs all transactions.
Several Programmer Utilities, including, a simple interface to creating Installshield Setup Scripts. Also used to build the InstallShield install diskette images.
In the past several years I have worked with Visual Basic 3.0, 4.0, 5.0., 6.0, and all versions of VB.Net ; Instatallshield 3.0, 5.0, 5.5 and 6.0; RoboHelp versions 3.0 through 9.0 using Microsoft Word 2.0; Microsoft Office Professional version 6.0, 95, 97 and 2000 (Word, Excel, Access, and PowerPoint); Visual Basic for Applications (VBA) starting with Excel 50 through Office 2000. I have written many DLL's in Visual Basic 6.0 from a General Purpose Class Library (which contains several Class Modules to extend various VB Controls as well as Class Modules that encapsulate many of the Windows API calls; a Database access DLL for a VB application (which separates the presentation logic from the database access logic; to an Internet Transfer DLL.
I have written Windows Services, and Service Monitor programs in VB.Net and many specialized controls.
I was the Advanced
Visual Basic Special Interest Group Leader (SIG) for the North Texas PC Users
Group (which meets on the second Saturday of each month at Microsoft in
I have taught (part
time) C, Beginning and Advanced Visual Basic (4.0, 5.0 and 6.0) at
I have written in C and Macro Asembler for years and have written many DLL's in C for DOS and Windows Applications, and Applications in C on the AS/400. I have also written in C++.
I recently changed my web site to a host that uses Windows 2000 server with SQL Server 2000.† Iím in the process of updating these personal pages to be ASP pages instead of static HTML pages, however, Iím not quite finished yet.
I am innovative, quick learning and have an intense desire to develop state-of-the-art systems. I have spent the last 30+ years creating techniques and methods, which enhance system development while decreasing the time it requires for that development. I have also spent much of that time teaching others those methods and techniques.
I developed ISAM techniques a year before I new they existed on other systems. I developed Relational Databases and Database Normalization techniques two years before I even heard of the terms or knew they existed. I have written two programming languages, one of which was written 4 times on four different platforms and with 4 different languages.
If there is a need, I find a solution. Whenever necessary, I will write a 'Tool' to solve the problem for me. The writing of the 'Tool', usually takes less time than writing the solution. In addition to the languages, I have written countless CASE Tools to solve a multitude of problems.
In 2008 I wrote the Data Transfer Utility (DataXfer) , an extendable, and simpler replacement for SSIS that contains many more built-in features that SSIS. You will find a link the DataXfer Utility here.
For my work history, see My Resume
Return to My Personal Page
Last Updated February 14 by Stephen Johnson