Robert J. McDonald, P.Eng.



Programming Languages:

Operating Systems:


Machining and welding processes, high speed automated
production and packing equipment, design of machinery and
mechanisms, heavy lifting and material handling equipment.
Assembler, C, Clipper, Clips, Forth,
Fortran, Lisp, Pascal, Perl, Snobol4
Data General Nova 2, Motorola 6805, 6811, 68000,
NEC 75028/036, Intel 8085, 80x86, Zilog Z80


Distributed Control/Data Acquisition System: Project leader in the implementation of a distributed control - data acquisition system, based on an embedded processor. Responsible for overall system analysis, design and implementation. Two programmers reported to me on this project. A host computer polled remote units via modem to initialize, download accounting information, update client status, and deliver reports. Designed a communication protocol which was used for all data transfers. The remote units controlled fuel dispenser operation. Programming was in Forth, 'C', Clipper, and Assembly language.

F83 Decompiler:Wrote a disassembler for the Intel 8088 in Forth which was integrated with the F83 decompiler, to provide seamless decompilation or disassembly for the user as required. The user can also call the disassembler explicitly to disassemble any specified range of addresses in memory.

Synthesizer Control Software:Wrote the real time control software for a single voice synthesizer in Forth.

Music Programming:Designed a music programming language for the synthesizer mentioned above, and implemented an interpreter for it in Forth.


ISO 9000 Software Development: Participated in the design of software development procedures to meet the ISO 9001 quality specification. I have five years experience designing and developing life safety software in an ISO 9000 environment.

DL1 Digital Alarm Communicator Transmitter: Performed initial product research and produced an engineering specification for a DACT for the EST-1 fire alarm control panel. This included a study of the applicable code requirements for this new product. Researched industry standard and proprietary protocols. Benchmarked a competitor's system to learn unpublished protocol and performance requirements. Created high level and detailed designs, and interface definitions for the software subsystems. Produced detailed designs and an interface document, software verification and validation test plans. This product was developed in accordance with the ISO 9001 quality standard.

DL2 Digital Alarm Communicator Transmitter: Modified the operation of the DL1 DACT to make it work with the EST-2 fire alarm control panel, maintaining as much code commonality as possible for ease of maintenance. The operation of the EST-2 is entirely different from the EST-1, yet for the customer, use of the DL2 is virtually identical to the DL1. Wrote detailed software verification and software validation test plans. This project was done in accordance with ISO 9001.

Telecom Test Hardware: Designed and built a telephone line simulator, signal generators, and "tone pulse" to logic signal interface hardware to aid the development of the DL1 and DL2 DACTs.

EST-1 Fire Alarm Control Panel: Worked with sales and marketing, to define the product. Wrote the engineering specification, and the high level design. Designed, coded and tested all drivers and interface code. Wrote test code for the hardware and assisted with the hardware testing and debugging. Coordinated with team members developing system components at remote sites. This project was done in accordance with ISO 9001.

Isolated Timing Signal Interface: Designed and built an optically isolated interface to maintain electrical isolation of control panel and adder module circuits, while measuring and calibrating timing parameters with an oscilloscope.

ESA 2000 Fire Alarm Control Panel: Ported the "C Executive" RTOS for the 8086 to a custom 80188 platform and ported existing degraded mode code to this environment. Wrote a translator from Whitesmith assembler to MASM and a memory map analyzer in PERL.

Multi Panel Monitoring for Allouette Aluminum Fire Alarm System: Designed a system to combine data output from multiple independent fire alarm panels and display it at a single monitoring station. Provided technical direction during assembly and testing of the system.

Steel Plant Status Monitor System: This system consists of sensors throughout a steel shop connected to PLC's and a PDP 11/84, a Fortran program on the PDP to provide a customizable user interface to the Shop Synchronization System program, and the Shop Synchronization program itself, running on a Compaq Deskpro/386. The program is written in 'C' and Assembly language. Mill data drives an object oriented model of the shop. The model drives a custom graphics subsystem which provides an animated display of the current status of processes throughout the steel making shop. The display is distributed throughout the shop and offices through use of a digital video repeater system of my own design. The final module of the process model was implemented as a rule based system. Assisted the customer in definition of the system specifications, and performed the system analysis and design. Wrote the specification for the PDP 11/84 program for data translation and logging. Coordinated installation and commissioning.

Digital Video Repeater Hardware Design: Investigated, tested and evaluated available video equipment. Designed, and implemented a system to distribute the output of an IBM compatible PC throughout an extremely electrically noisy environment. Performance was much better than that of commercially available products.

Packing Line Control System: Completed the implementation of a supervisory control system for a group of packing machines. This system was written in 'C', running on a PC using the QNX real time operating system. Local controllers at the packing machines were OPTO LC2s programmed in BASIC. This undocumented system, written in totally uncommented code had been abandoned by the original designer when it was ready for commissioning.

Energy System Modeling: Developed and maintained Basic and Fortran software to model energy usage in industrial plants, and wrote simple financial modeling software to illustrate potential savings to clients. Operated and maintained two Data General minicomputers and miscellaneous test equipment. Assisted with plant surveys and presentations to clients. Demonstrated programs and services to the public and industry.

3D Graphics Preprocessor: Wrote a preprocessor for the HP1000 which translated three dimensional objects to a two dimensional representation, in the Grafit command language, (a two dimensional graphics package). This was used to aid visualization of the flow of molten iron from data gathered by researchers.

Computerized Creative Problem Solver: This program combines an interactive user interface with a database system to guide the user through problem solving using the SIMPLEX creative problem solving methodology. My responsibilities included: initial project proposal, specification writing, design of the user interface, design and coding of the prototype system.

Teaching: Lectured on Fortran and Basic computer programming. Assisted students with problems in lecture material and assignments. Marked assignments, tests and exams. I have designed and presented courses on the UNIX and QNX operating systems, and Novell Netware.

Pipe Transfer Trolley: Redesigned the wheel assembly on a trolley used to transfer steel pipe between manufacturing stages in a pipe mill

Overhead Crane Gearbox Redesign: Performed failure analysis of a sheared intermediate gear shaft. This study indicated that excessive stress concentration lead to fatigue failure of the shaft. Redesigned shaft with appropriate safety factors.

100 Ton Mill Crane Radio Control Conversion: Two mill cranes were modified to allow manual or radio control operation. Designed changes to existing control system including safety interlocks, wrote job specification, analyzed quotes and chose supplier. Supervised installation and commissioning of the system.

Monorail and Jib Cranes, 1 - 3 ton capacity: Analyzed requirements, specified cranes for applications, analyzed quotes, reviewed designs, inspected completed equipment, provided technical direction during installation, supervised commissioning.

Slab Charging Crane: Under the direction of a senior engineer I participated in all aspects of design review, construction, inspection, installation, and commissioning of the slab charging crane for an 80" hot strip steel mill.

Coke Oven Commissioning Deficiency Tracking: Tracked deficiencies and problems found during commissioning of a coke oven battery. Produced computer based reports for review. Inspected conveyor system to identify deficiencies in that area.

High Pressure Descale System Layout: Produced layout drawings of high pressure descale piping for hot strip rolling mill.

Mill Roll Handling Bail: A symmetrical lifting bail for mill roll assemblies was modified to lift an asymmetric load while maintaining a level attitude to speed and simplify mill roll changes.

Mill Crane Jacking Pad Modification: Reinforced jacking pads were designed for the girders of a 30 ton mill crane, and a safe jacking procedure written for mill personnel servicing crane wheel assemblies.

Box Girder Design Program Enhancement: A Fortran program for the design of mill crane box girders to industry design standards was modified to provide additional design information.

Networks and UNIX Workstations: Managed networked UNIX workstations, implemented mail links with other systems via uucp, set up a Usenet site and wrote user utilities. Designed and coordinated major upgrades to two engineering office networks. Managed Novell network. Implemented backup and disaster recovery procedures for network and user workstations. As part of a team I participated in the assembly, set up and testing of a data switch installation which connected user terminals with local and remote computer systems, modem pools and packet switched network. I have been active on the Internet for over ten years.

Supervision: For 18 months I directly supervised a staff of six providing services in data acquisition, database programming, project scheduling, data communications, PC Support and data entry. My main duties were to coordinate and optimize usage of computing resources, plan and control the computing budget, help staff set goals, review staff performance annually, schedule work for the department, evaluate and approve all computer related purchases, and interview job candidates.

Insurance Brokerage Management System: A database system was written which integrated client management and some accounting functions. A forms based user interface sped and simplified data entry.

Industrial Mechanic: Set up and maintained high speed punch presses, automatic feeders, roll threaders, slitter, and automated packing machine. Performed general machining and welding as needed in support of these duties.

Screw Machine Tooling and Operation: Made control cams for a variety of automatic screw machines. Set up and operated Brown & Sharp screw machines. Installed, repaired and maintained all shop machinery.

Machinist: Machined high precision titanium components for jet engine turbine assemblies.


Edwards Systems Technology
Stelco Inc.
McMaster University
Stelco Inc.
Ryerson Polytechnical Institute
Rothman's of Pall Mall Canada Ltd.
Bernardin of Canada
Camco Screw Products
Bernardin of Canada
Walbar Machine Products
McDonald Cam Company (part time)

12/91 to 11/96
8/86 to 11/91
9/84 to 8/86
6/80 to 9/84
7/78 to 8/79
5/78 to 7/78
5/76 to 8/76
5/75 to 8/75
1/75 to 5/75
11/74 to 12/74
9/73 to 10/74


McMaster University
Hamilton, Ontario

Ryerson Polytechnical Institute
Toronto, Ontario

Martingrove Collegiate Institute
Toronto, Ontario

Master of Science in Computation

Bachelor of Technology in Mechanical Engineering

Grade 13 Diploma (Electronics)


Rate Monotonic Analysis
NEC IE75000 Programming
Fire Alarm Technology
Creative Problem Solving II
Creative Problem Solving I
Toastmasters CTM
Artificial Intelligence
AIX System Management
Supervision & Management
Expert Systems & A.I
Asyst Programming
RTE-A System Programming
RTE-A System Management
Statistical Process Control
Programming in Pascal
Electric & Electronic Engineering
Probability & Statistics
Advanced Machine Design
Dynamics of Machines
Conversational French

Embedded Systems Conference
Toastmasters International
I. T. R. C.
Practical Management of Canada
Integrated Computer Systems
Asyst Technologies Inc.
Stelco Inc.
McMaster University
McMaster University
Ryerson Polytechnical Institute
University of Toronto
University of Toronto
Toastmasters International
Mohawk College


email address: