Dr John A Fotheringham 
(Update this field (F9) to get Contents list) 

Personal details
Location	Stockport, Cheshire
Date of birth	2nd September 1959
Status	Single
Education	MA (Hons) in Natural Sciences (Cambridge) Certificate of Advanced Maths Studies (Cambridge) PhD in Theoretical Particle Physics (Manchester)
Employment	MOD PERME Westcott 1979-1980 (pre-university year) Systems Designers plc (now EDS) 1987-1993 Yezerski Roper Limited 1993-present
E-mail	jaf@jafsoft.com 
Skills Summary
Languages
·	C++ and Visual C++, some C
·	Java
·	HTML, Wap/WML
·	some exposure to CGI/perl
·	Fortran
·	DCL
·	RTF
·	some TCP/IP sockets
·	(a long time ago) Pascal, ALGOL 68, RTL/2, Basic
Operating systems
·	Windows NT & 95/98
·	VAX VMS, ALPHA AXP
Products used
·	Microsoft Developers Studio
·	VisualSource Safe
·	Microsoft Office
·	SECTON (became InfoPlus)
·	Reflection/Kermit
Platforms
·	Most flavours of DEC VAX/ALPHA
·	various PC
General abilities
·	All aspects of software production including - analysis of user and functional requirements - specification and design - implementation - testing - integration and commissioning - maintenance
·	VMS systems administration
·	Well versed in Internet skills (webmaster@yrl)
·	Mathematical modelling and numerical analysis
·	Training, and demonstrating systems to customers
·	Support, including out-of-hours maintenance
·	Team leading
Application areas
·	Command and control
·	HTML/Internet
·	Scripting tools
·	GUI design
·	Customer facing systems
·	Client/server systems
·	Real-time programming
·	SCADA systems
·	Code management and software development tools
Business areas
·	Call centres (national and foreign breakdown systems)
·	Automated document conversion (text to HTML or RTF)
·	Petrochemicals (refinery process control)
·	Process industries (e.g. brewing)
·	Utilities (water monitoring system)
·	Airports (baggage handling system)
·	Scientific research
Strengths
·	12 years design and development experience of a wide range of software products and environments.
·	Has developed a number of software tools in support of other developers.
·	9 years Fortran/VMS experience and more recently..
·	5 years C++ and object oriented design
·	2 years running own company to promote shareware (www.jafsoft.com)
·	1 years experience of Java.
Experience History
Yezerski Roper Ltd ('93-Present)
Jan 00 - present : Internal project to serve Macromedia Flash route maps 
VMS OSU webserver
Microsoft IIS webserver	perl	
Part of a team involved in developing a system to do route running with the results being sent back as Flash movies.  Primarily involved in setting up perl scripts that would forward the request to the route running server, and which would return Flash movies as results. The requests were sent from inside a Flash movie, but I was not involved directly with the Flash files. 

Aug 00 - Nov 00 : Developing Wap/WML-based email client 
 	VMS OSU webserver	 	 	WML	
Involved in a short project to make an ISP client's email available to customers via Wap phones.  The client had an exsisting Web-based HTML gateway, so this was adapted to serve up WML instead.  Involved in configuring the web server and designing WML which would best comply with the various constraints forced upon us by differeing WAY phone and WAP gateways.  Designed a set of WML test pages to test and demonstrate the limitations of each combination with respect to parse errors, DTD differences and file sizes. 
Since the client was in Germany, the project was delivered via the Internet. 

Aug 98 - Feb 00 : Merrill Corporation (in USA) 
HTML generator for typesetting system 
AlphaStation/VMS	 	 	C++	
Integrated the AscToHTM text converter (see below) into a client's typesetting package to produce 'print to HTML' functionality for a major financial publishing company.  This enables them to file HTML versions of all documents with the SEC in America.  The work included the construction of complex financial tables and converting typeset contents lists into active hyperlinks. 
Since the client was in the USA, all communication was by email, and product updates were shipped regularly (almost daily) via the company web site. 

Jan 97 - present : Shareware development in own time 
AscToHTM text to HTML converter
AscToRTF text to RTF converter

Pentium, Windows 95
Vax/Alpha OpenVMS.	Visual C++, MFC;	
Wrote text-to-HTML conversion software (on both Windows and VMS) and which is now offered as shareware which has been well reviewed (e.g. 5 stars at ZDNet and many others) 
The OpenVMS version and is offered as freeware is included by Compaq on the CD they send to all their OpenVMS customers. 
Later also developed a text-to-RTF converter AscToRTF which also received a 5-star review from ZDNet. 
See http://www.jafsoft.com/asctohtm/ and http://www.jafsoft.com/asctortf/ 

May 97  : Hong Kong University Medical School. 
Internet training course 
The Web:- HTML 
As a result of extensive Internet experience, started giving support via email to a friend.  This led to an invitation to give a half-day seminar introducing the Internet to medical school postgraduates. 
The results, though a little dated now, can be seen at http://www.jafsoft.com/misc/course/course.html 

Jan 97 - Aug 98 : In-house call centre product (Fleetness) 
Java Front end and supporting servers 
PC/VMS	Java JDK 1.1, AWT, Swing 1.0, Visual J++
AlphaStation	C++ (server code)
Developed Java front end for our Fleetness call centre product.  Originally written in Java 1.0 using AWT, the code was later re-written using the new event model and Swing when  Java 1.1 came out. 
The front end runs as either applet or application, and was demonstrated on PC, Mac and VMS clients. 
The Java front end is supported by a C++ server that acts as a gateway to the rest of the system, allowing the link between user and the rest of the system to be properly managed, and messages, phone calls and work in progress screens to be passed from one user session to another. 

Jan 96 - present : R.A.C. (Europe) 
24-hour first line support 
One of the team offering 24-hour support for the EuroCARS call centre system we installed for the RAC's European operation in Lyon.  More recently we've also started supporting the Leyland-DAFAid system 

Jan 96 - present : In house web site 
Webmaster for www.yrl.co.uk 
 	Vax VLC 4000	 	 	 	VMS/HTML/DCL	
Involved in the implementation and maintenance of the company's intranet and internet networks. This involves some web page authoring and a limited amount of script writing.  Since our web server is VMS, the scripts are mostly written in DCL (and C) rather than the more traditional web server tools like perl. 

Mar 96 - Jan -97 : SAS (Holland) and VTB (Belgium) 
EuroCARS implementation 
Vax/Alpha	 	 	 	VMS/Fortran/C++	
Extended the EuroCARS system to meet the needs of SAS, a Dutch insurance company who handle their own breakdowns and claims in order to control costs.  Also did some work for VTB in Belgium.  Both organisations were partners of the RAC in an attempt to build a pan-European breakdown organisation with an integrated IT structure. 
Assisted the customer in writing Job Stage Scripts (see below) for the 100's of contracts they had to support. 

Feb 94 -  Mar 96 : RAC France 
EuroCARS Configurable user interface 
Vax/Alpha	 	 	 	VMS/C++	
After the success of the Job Stage Scripts (see below), helped design and implement a "scripted" user interface.  This consisted of a data-driven panel handler.  Panels could be defined in scripts which could then be compiled and loaded dynamically into the running system, with no need for software changes or downtime. 
The panel's contents, data retrieval and logging, layout, links to other panels and mandatory fields could be specified via a script. 
In this way by customers could change the user interface with no need for us to add further code.  This allowed hundreds of customised panels to be added for no extra software. 

Feb 94 -  Mar 96 : RAC France 
Designed and implemented EuroCARS Job Stage Scripts 
Vax/Alpha	 	 	 	VMS/Fortran	
Responsible for the design and implementation of the scripting engine inside EuroCARS, our multi-lingual call centre product developed for the RAC's European operation. 
The script language allowed "Job Stage Scripts" to be written and executed. These scripts would define all the stages a job (e.g. a breakdown) should go through, and were used to drive users and the user interface through the correct sequence of events, ensuring everything was done correctly as per contract. 
New scripts could be compiled and loaded into the running system without need for any software changes or downtime. 
Different scripts could be run for different jobs or levels of service, allowing the system to easily adapt to new practices and new contracts, and to handle many different types of contact in parallel. 

May 93 - Feb 94 : In-house development 
Code management system 
Vax/Alpha	 	 	 	VMS/FORTRAN	
Developed code management and development environment used by YRL for all their VMS system development. This environment has also been adopted by our major client. 

Systems Designers plc (now EDS-Scicon) ('87-'93)
Oct 92 - May 93 : Shell Port Dickson Refinery Supervisory Control System 
Functional Specification, System Specification and Training 
VAX 4000	FORTRAN 77/VMS
Compaq 486 PCs	DOS
VAXstation 4000 VLC	GCS/SETCON-CALC
Involved in writing the Functional Specification and System Specification for a SETCON SCADA system. This included a two week visit to Malaysia to discuss customer requirements. Involved in training staff new to SETCON, FORTRAN and VMS in implementing SETCON systems. 

Jan 91 - Aug 91 : Intelligent Tank Farm Management (ITFM) system 
Functional Specification 
Involved in the specification of the generic tank farm management package THINK-TANK  This package combines Artificial Intelligence techniques with a relational database 

Aug 91 - May 93 : SETCON support 
Nominated as point of contact for SETCON support for Shell international headquarters in the Hague (SIPM).  Although mostly telephone support, this included a one week visit to the Netherlands to offer Shell support. 

Jan 91 - May 93 : In-house development support 
Responsible for managing and maintaining a library of re-usable software tools, intended for use in the VMS/FORTRAN /DCL environment. 
Responsible for the production of many of these tools (often on own initiative), including:- 
·	a configurable VMS health checker
·	a DCL command file to emulate BACKUP facilities between networked machines which operate different versions of VMS
·	a configurable location-sensitive DCL menuing system
·	a configurable suite of DCL Backup command procedures
·	the SETCON Tool Kit

Nov 90 - Dec 91 : Shell Gothenburg Refinery Supervisory Control System 
Functional Specification through to acceptance testing 
VAX 4000	 	 	 	FORTRAN 77/VMS	
Compaq 386 PCs	 	 	 	DOS, GCS/SETCON-CALC	
Involved in writing the Functional Specification and System Specification. This involved a brief visit to Gothenburg to discuss customer requirements. 
Responsible for designing application software and user interface for a large SETCON system,and for designing and implementing an integrated reporting system. Responsible for developing a 'rolling averages' module, and for implementing DCL backup and housekeeping regimes. 
Responsible for fixing all the bugs in the 'Setcon-Modes' package supplied to us, and for extending the functionality of this product to a level acceptable to the customer. 
Technical Team Leader for the Application Development Team. 

Oct 90 - Nov 90 : Demonstration system for Shell International 
Complete system implementation 
VAX 4000/MicroVax/Vaxstation	SETCON/FORTRAN 77/VMS
Compaq 386 PCs	DOS/GCS/Turbo-GCS
Produced a reduced version of a SETCON refinery system as a self-contained demonstration system that was exhibited at a Shell International conference. The system demonstrated many of the standard SETCON features, as well as those added by ourselves during a previous project. The enhanced user interface supplied via the Graphical Console System (GCS) was particularly highlighted. 
Responsible for all the work involved. This culminated in two weeks spent at various sites in the Netherlands.  Assisted in demonstrating the system to Shell refinery managers at the conference. 
On own initiative, wrote a program to produce a 'rolling demonstration' that cycled through the main screens of interest. 

July 89 - Oct 90 : Shell Stanlow Refinery Supervisory Control System 
System design through to site acceptance 
VAX 6300	 	 	 	SETCON/FORTRAN 77/VMS	
Compaq 386 PCs	 	 	 	DOS/GCS/SETCON-CALC	
Responsible for designing application software and user interface for a large SETCON SCADA system. Successfully designed and implemented a more effective use of GCS (based on user tags). 
Lead a team of four during the detailed design and implementation phases. Acted as SETCON and database manager for the project, and responsible for developing (on own initiative) a number of software tools and development support environments. 
Commissioned the system on-site, and responsible for modifying and further enhancing the system at the customer's request. 

July 89 - Nov 88 : Gatwick Airport Baggage Handling System 
Program design 
MicroVAX II	 	 	 	SETCON/FORTRAN 77/VMS	
Compaq 383	 	 	 	GCS	
Involved initially in design and implementation of PLC interface, and as SETCON and VMS system manager. The project applications had originally been designed to operate in POSL, but it became apparent at a late date that this would not meet performance criteria. The whole design was transferred to FORTRAN. Involved heavily in performing this changeover in the limited time available. 
Responsible for commissioning the system during which time much of this software was further enhanced to improve performance. 

Aug 88 - Nov 88 : BP Oil Refinery Advanced Control Project 
Documentation and Design 
MicroVAX II	 	 	 	SETCON/FORTRAN 77/VMS	
Involved in rewrites of System and Functional Specifications, as well as production of Test Specification for System. Responsible for production of a few simple SETCON applicable programs. 

Nov 87 - Aug 88 : Water Quality Monitoring Project 
Program design, coding, testing and documentation 
MicroVAX II	SETCON/FORTRAN 77/VMS
PDP11	RSX11
Member of the Data Acquisition team within a large SETCON project. Responsible for all stages (design through to testing) of various modules within the Data Acquisition Subsystem. As these modules made heavy use of SETCON Event History files, also responsible for the production of several Event History accessing utilities. 
Responsible for database maintenance, and performing some of the SETCON management functions. This involved SETCON generation. Also involved in the implementation of a remote print handler (printing on PDPs over DECNET) that allowed priority printing. 
Modified various SETCON tasks, in particular BFR which was altered to allow 'disk shadowing' of the database using RMS. 

Oct 87 - Nov 87 : SETCON LOTUS 123 Interface 
Program design, coding and testing 
MicroVAX II	SETCON/FORTRAN 77/VMS
IBM PC	Kermit software, LOTUS 123 software
Responsibility for producing an interface whereby data from the SETCON database could be used to generate a spreadsheet in the LOTUS 123 package. Once the spreadsheet was defined at the SETCON end, an intermediate text file was produced which was then transferred to the IBM PC by use of the Kermit file transfer package. Once on the PC, the file could be imported into LOTUS 123 as part of a spreadsheet. The process was simplified for the operator by use of programmable keyboards.  This had the advantage that it was not necessary for the operator to know both SETCON passwords, nor to log on to the MicroVAX to transfer the file. 

Jun 87 - Oct 87 : Ind Coope Brewery Supervision Project 
Program coding, testing and design 
MicroVAX II	SETCON/FORTRAN 77/VMS
IBM PC	BASIC
Part of a team providing an extended SETCON package to a Brewery. Responsible for producing software that allowed 'exception refresh' on SETCON screens. This allowed faster response and lower overheads for the SETCON system. Also responsible for producing the 'value mimic graphics' in which high density graphics are defined through use of SETCON event history files rather than in the usual way. As a consequence of the heavy usage of event history files, was required to produce utility programs that allowed this data to be examined, listed and modified more easily than through the standard SETCON facilities. 
Responsible for producing a SETCON error message routine. 
Involved in maintaining a 'menu' program in BASIC on the PCs, and in configuring the programmable keyboards. Installed various software packages in the PC. 
Wrote several DCL command files and in particular introduced a BACKUP regime in the system. 

Jun 87 - Apr 87 : Fisher ProVOX-SETCON Interface 
Program design, coding and testing 
MicroVAX II
(Fisher-ProVOX kit)	SETCON/FORTRAN 77/VMS	
Involved in producing an interface between the two process control packages, SETCON and ProVOX. This involved writing software to read data from the ProVOX data highway and putting it in the database. The software was linked into  SETCON via standard User I/O device hooks. Change-of-state tasks were written to pass outputs from SETCON to the ProVOX kit. A special task was written to extract 'Batch-end-data' from the ProVOX kit and put it into historical files, thereby allowing the superior trending facilities of the SETCON SCADA system to be used with ProVOX data. 
Another task was written to automate replies to 'operator action required' requests generated by the ProVOX Kit. This demonstrated the feasibility of transferring control from the ProVOX operator to the SETCON system and operator. 
The interface as produced was solely intended as a demonstration of feasibility and as the basis of a demonstration package. 

Mar 87 - Apr 87 : In-house 'Kermit' Project 
IBM PC
MicroVAX II	Kermit Software	
Required to install Kermit on both IBM PC and MicroVAX, and to then transfer all files from PC to the MicroVAX, to allow the PC's fixed disk to be re-formatted. 

Jan 87 - Mar 87 : Warehouse Automation Project 
Program translation from PEARL to RL2 
PDP 11/44	 	 	 	PEARL/RTL2	
Joined the latter stages of a project translating an existing software warehouse package from PEARL to RTL2. 

As Ph.D. Student in Theoretical Physics ( '83-'86)
Aug 83 - Dec 86 : Software for Thesis calculation 
Program Design 
GEC 4090	PASCAL	
IBM 370
MicroVAX	FORTRAN 77	
Production of the various programs used in the calculation and data manipulation associated with my thesis. 
The bulk of the calculation was done by two programs originally written in PASCAL but eventually translated to FORTRAN 77.  The first evaluated a four-dimensional integral with variable limits. There were problems with overall convergence of the answer, together with cancellations and divergences in the integrand. The second program optimised the 15 input parameters used by my model in order to get the closest sensible agreement between the model's predictions and experimental observations. Parameters with a direct physical interpretation had to be constrained to give sensible answers, and the order in which the parameters were varied proved important in determining how good a fit could be obtained. The error analysis of so many parameters also proved tricky. 
Once these programs were completed, they were submitted as batch jobs on the Rutherford Appleton Laboratory IBM 370. 
An additional two programs, written in PASCAL, were used for data manipulation. The first, a 'data management' program, was essentially a home-made spreadsheet program. The second, which was co-written with a colleague, was a graphics program allowing results to be plotted complete with error bars. 
Also wrote a PASCAL formatting program to write out a PASCAL program in a consistent and tidy format, with indentations automatically put in to emphasize the block structure and thereby make programs easier to read. 
In the latter stages the thesis was written up using the TeX word processor on the MicroVAX and output to a laser printer. 
MOD Perme Westcott ('79-'81)
Jun 81 - Aug 81 : Gas dynamics program 
Program modification 
ICL 1903	 	 	 	ALGOL 68	
Responsible for making minor modifications to an existing gas dynamics package. These modifications extended the range of applications for which the program could be used, allowing it to cope with some recent rocket motor designs. 

Jun 80 - Aug 80 : Tektronics Graphics package 
Program Design 
TEKTRONICS	 	 	 	BASIC	
Responsible for designing, coding and testing of a suite of programs intended to display graphically representations of rocket motor designs. 

Jan 79 - Sep 79 Rocket Motor simulation program (pre-university year) 
Mathematical modelling/program design 
ICL 1903	 	 	 	ALGOL 68	
Responsible for deriving the theoretical framework for a program already in use, but not documented. A program to reproduce the results of the original was then written, and eventually extended in capability. 
Having produced a geometrical solution to the problem, a new, more general finite element approach was developed, and the project was extended from 2D to 3D applications.