Mar 1988 - Jul 1991. Independent Contractor


Mar 1988 - Jun 1988. Unisys Australia
Task: Enhanced Embedded Cheque Processing Application
Skills: S40 Document Processor, Unisys B20, BTOS, BTOS Pascal

I was contracted by Unisys Melbourne to work in Pascal on their On-line Capture System for the S40 document processor. The S40 was installed in bank branches to perform low volume cheque MICR data capture and sorting. All development was performed on Unisys B20 equipment, while testing was performed on the target S40 machine.

Debugging, modifying existing code, developing new features, testing, packaging and releasing the S40 software were among my responsibilities.


Jul 1988 - Mar 1990. BytRex
Task: Started own Business

BytRex was formed in July 1988 by myself and two other people to provide software support services in the form of software maintenance of existing applications and on/off-site development.

Task: Performed Ongoing Maintenance and Enhancement of Dental Practice Management Package (Dentics)
Skills: Sun 3/50, MS-DOS, SunOS, HiTech C, RCS, Make

I was contacted by Vertical Software and asked to take over maintenance and enhancement of Dentics. I implemented a number of enhancements including; online, context sensitive help; batch and single letter generation; free form comment entry to patient records.

Task: Developed and Presented Dentics Programming Course
Skills: MS-DOS, JPI TopSpeed C

When Vertical Software went into liquidation, the Dentics software was sold to another software company. I developed and presented training material for programming the Dentics product. The new owners of the Dentics software wanted to use JPI TopSpeed C on MS-DOS, so I assisted another programmer in migrating the code to that environment.

Task: Developed Corrupt Database Repair Tool
Skills: Sun3/50, MS-DOS, SunOS, HiTech C

I developed a program which could recover some forms of data corruption in compressed records in the Dentics database.

Task: Customised and Enhanced Remittance Processing System
Skills: S40 Document Processor, Unisys B20, BTOS, BTOS Pascal

Bytrex was subcontracted to modify the Australian Taxation Office S40 based remittance processing application to suit the South Australian Department of Lands document processing requirements. The system consisted of an embedded component in the S40 document processor, and a B20 hosted real-time data capture system. The existing system was implemented in Microsoft Pascal.

I enhanced the S40 software to provide simultaneous OCR and MICR data capture. I also enhanced the B20 hosted S40 communications program to provide access to the B20 database.

I assisted in the development of a counter application for the Department of Lands. This involved extensive debugging, and enhancement to existing Australia Taxation Office LAN based receipting system. I developed the four modules (Reversals, Account Payment, Balance Out, Cash Adjust).


Mar 1990 - Jul 1991. Australia Post, Electronic Counter Services
Task: Maintained Counter Terminal Transaction Server
Skills: Unisys B20, BTOS, BTOS Pascal

I was contracted as a Technical Specialist with Australia Post to work on the Electronic Counter Services project where over 1,000 counter terminals were used in Post Offices throughout Australia. Up to 30 counter terminals were connected to each Unisys B20 Concentrator which in turn was connected to a Unisys A12 Mainframe via an Austpac leased line. Initially, I performed general maintenance of the concentrator code.

Task: Co-wrote Multithreaded Event Manager Program
Skills: Unisys B20, BTOS, Microsoft C

I co-wrote a multithreaded program in C called the Event Manager. The purpose of the program was to unobtrusively monitor all other programs in the B20 to provide a real-time detailed remote status function to the A12 mainframe. A small module was linked to each program which started a thread dedicated to Event Manager communication. The module provided a read-only window to selected global variables in the application.

To assist in diagnosis of problems I developed a program to communicate with the Event Manager. The program allowed the users to interactively monitor the internal state of all programs modified for the Event Manager. Since the Event Manager returned raw data, I implemented a grammar for defining at runtime the structure and on-screen formatting of the variable data.

Although the feature was never used due to limitations in the mainframe software, the program also had the ability to receive commands from the A12 and route them to the relevant B20 program.

Task: Implemented Central Message Logging Facility
Skills: Unisys B20, BTOS, Microsoft C

I made a subsequent enhancement to the Event Manager to allow it to manage all system log files. The enhancement allowed multiple programs to simultaneously log messages to multiple circular log files. An extra program was written which used inter-process communication to monitor, filter, and display the messages being logged in real-time.

Task: Developed Multifile Token Editor
Skills: Unisys B20, BTOS, Microsoft C

A decision was made to rationalise and standardise the variable naming conventions in the Transaction Server. The B20 source code had approximately 100,000 lines of Pascal in over 250 files. I wrote a program which parsed all of the code and then allowed interactive simultaneous editing of all tokens in the source to achieve safe global variable and type name changes.

Task: Rewrote BCD Arithmetic Code
Skills: Unisys B20, BTOS, Microsoft C

I rewrote all of the BCD arithmetic code and achieved a 300 fold increase execution speed. This resulted in halving of the transaction processing time.

Task: Helped Port GNU Make to BTOS
Skills: Unisys B20, BTOS, Microsoft C

To provide a better development environment, another programmer and I ported GNU make to BTOS. This involved some advanced programming tricks since BTOS provides no process creation facilities.

Top of Résumé