$_$_TITLE CV/Resume : Dr John A Fotheringham *Dr John A Fotheringham* $_$_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 perl Microsoft IIS webserver 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 Visual C++, MFC; Vax/Alpha OpenVMS. 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 SETCON/FORTRAN 77/VMS (Fisher-ProVOX kit) 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 Kermit Software MicroVAX II 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 FORTRAN 77 MicroVAX 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.