1

D. GARETH WILLIAMS - CURRICULUM VITAE

Software Consultant

Security Cleared Analyst, Designer and Developer, 20 years experience

C++/C/Java/Python/Perl OOA/OOD Unix/Linux/MS-Windows/Embedded

Full name:

David Gareth Williams

Address:

Montrose,
Ledbury Road,
Ross-on-Wye,
Herefordshire,
HR9 7BE

Date of Birth:

1964

Phone:

Tel/Fax: 01989 563704
Mobile: 07970 859731

Nationality:

British

Email:

gareth@dgwsoft.co.uk

INTRODUCTION

I am Director of DGW Software Consultants Limited which provides software consultancy and development services.
I have over twenty years experience in software development, on UNIX, MS-Windows and embedded platforms. My clients have included QinetiQ (and its predecessor, the Defence Evaluation Research Agency), DSTL, Thales Naval, EDS Defence, L-3 TRL Technology, EADS (Airbus) and UK Government agencies. I have current security clearance.

SUMMARY

Clients:

DSTL, Cellmark, IA Technology, L-3 TRL technology, Govt. Dept. Cheltenham, EADS, EDS, Thales, QinetiQ, ESA.

Skills:

Software design and development (including Object Oriented and Generic programming methods), Scientific software development, Embedded systems. Requirements capture, analysis, GUI development, web-based systems, numerical analysis, thermal analysis, finite elements, fault tree analysis, computational holography, software porting and translation, technical/user documentation, course development and presentation, military messaging systems. Continuous integration test and deployment, behaviour driven development (BDD), forensic genetics, Bayesian statistics, Linux device driver and kernel module development.

Programming Languages:

C, C++, Java, Python, Perl, bash, HTML, Tk/Tcl, FORTRAN 77, FORTRAN 90, PASCAL (Turbo & Vax), PostScript, Visual Basic, MFC, R.

GUI:

X/Motif, X-Designer, wxWidgets (wxGTK), tk (tcl and R bindings) Web: HTML, Javascript, JSF, Primefaces, D3.

Systems:

UNIX (SunOS/Solaris, HP-UX, IRIX, LINUX), VMS, DOS, Windows-95/98/XP/NT/2000.

Standards:

GSM protocols, POSIX, STANAG 7023 (NATO Primary Image Format).

Tools:

Unix shells & tools (awk, make, sed, yacc/lex, etc), Eclipse, MS Visual Studio, Purify, Khoros, Apache, SCCS, RCS, CVS, CygWin, ESATAN/ESARAD/FHTS, JOCS, Rational Rhapsody, Enterprise Architect, Netbeans, Glassfish, Flask, Vagrant, Puppet. Atlassian tool set (JIRA, Bamboo, Bitbucket, Confluence), Cucumber, Behave, Gherkin, GoogleTest, Klocwork.

Publications:

Encoding of low-quality DNA profiles as genotype probability matrices for improved profile comparisons, relatedness evaluation and database searches; K. Ryan, D. Gareth Williams, David J. Balding; DOI: 10.1016/j.fsigen.2016.09.004. arXiv:1601.04767 [stat.ME]

Hardware:

SUN, HP, VAX, SGI, PC, X86 Cluster, PC104, Altera NIOS II soft-core (FPGA embedded) processor, NVIDIA CUDA-enabled GPGPUs, PIC 18 Micro-controllers, Beagleboard.

Security Clearance:

UK, Current.


DGW Software has office facilities, and is able to undertake software development on our own premises under MS-Windows and Unix (Linux). We are willing to tender for fixed price contracts.

DEGREE

1982-85: B.A. (Hons) Natural Sciences (Theoretical Physics) St. Catharine's College, University of Cambridge.

PROFESSIONAL EXPERIENCE

Software Design and Development

I have experience of a wide range of technologies including Object Oriented Analysis and Design, implementation in C++, C, Java, Python, Perl and other languages. I have been involved in the full software development lifecycle, including requirements capture, analysis, design, implementation, integration, field trials, and user documentation; and the design and presentation of a training course.

Scientific and Mathematical Software

I specialise in the development of scientific and mathematical software, having worked in astronomy, fluid mechanics (single phase and two-phase), orbital mechanics, thermal analysis (lumped parameter, finite element and radiative heat transfer), Infra-red imaging, computational holography, parameter fitting, probabilistic risk assessment, cryptography and forensic genetics. I am familiar with a variety of numerical and mathematical methods e.g. FFTs, Simulated Annealing, Bayesian statistics.

Technologies

My projects have included GSM telecommunications systems, military messaging and telephony, security analysis and hardening, operations modeling, designing and implementing algorithms for Computer Generated Holograms, numerical analysis (including the design of algorithms in fluid dynamics), image processing, cryptograhic systems, GUI development, and the design and implementation of Intranet systems.

Professional

I am a member of the Consultative Council of IPSE (The Association of Independent Professionals and the Self Employed); I served as Chairman from March 2000 to April 2001, and as a member of the Board until May 2003.

PROJECT DETAILS

Current project:

Client:

QinetiQ, Malvern. June 2016 – February 2017 (current).

Project:

Secure Gateway Product

Description:

1) Principal software test engineer. Set up continuous integration test environment and infrastructure and developed suite of system/integration/acceptance tests in Java and Python.

2) Development of Linux device driver for Xilinx Kintex-7 FPGA PCIe card.

Skills:

1) Atlassian tool set (JIRA, Bamboo, Bitbucket, Confluence), Cucumber, Behave, Gherkin, GoogleTest, Klocwork. Fedora, python, bash, awk, systemd services. Behaviour Driven Development (BDD).

2) Linux device driver, Linux kernel module, C.




Previous projects:



Client:

Land Registry, Gloucester. August 2015 – March 2016.

Project:

Development of online services

Description:

Development of online services in Java and Python for internal use within Land Registry.

Skills:

Java, Eclipse, Python/Flask, PyCharm, Git, Centos 7, MacOS 10, Windows 7, VirtualBox, Vagrant, Puppet, Perl, bash, Syslog, HTTP.


Client:

BAE Systems, Applied Intelligence, Gloucester. November 2014 – June 2015.

Project:

Secure Gateway Systems

Description:

Development of embedded software for secure gateway networking products.

Skills:

C++, GNU tool chain, CMake, Boost, Eclipse, Git, Centos 6. Also testing, shell scripts, Wireshark, Sipp, VirtualBox. SNMP, Syslog, HTTP, TCP/IP.


Client:

DSTL Porton Down October 2012 – October 2014

Project:

AIMS

Description:

Development of Biometrics Database Software: Design/implementation of user interface, database back-end and development of theory.

Skills:

GUI: Primefaces, D3 (Javascript/JSF/AJAX).

Back end: Java Enterprise (JEE6), Glassfish, Netbeans, C++, Visual Studio, MySQL, SQL scripting, bash, Git, Enterprise Architect.

Biometrics software: Warwick Warp, Mirlin, FaceVACS.

Theory: Developing Bayesian and Weight-of-Evidence mathematical methods for multibiometrics analysis.


Client:

Cellmark, Oxfordshire. January 2012 and June 2012

Project:

OCMMix

Description:

Development of forensic genetics software in R based upon an original program published under the GPL.

Skills:

Linux, Windows, R, forensic genetics, statistics.



Client:

IA Technology LTD, Hereford. April – June 2012

Project:

Barlem/Keynote.

Description:

Embedded C programming for military hardware.

Skills:

PIC 18 micro-controller, C, MikroC PRO for PIC, CSAC (chip-scale atomic clock), GPS.



Client

IA Technology LTD, Hereford. June 2012

Project:

Goalscan.

Description:

Demonstration project using BeagleBoards and laser range-finders.

Skills:

BeagleBoard single board computer, Angstrom Linux, laser range-finder, serial interface, C.



Client:

MOD, Herefordshire, November 2009– April 2012

Project:

Research project

Description:

Design and development of scientific software in C++ using the CUDA API and NVIDIA GPGPUs. Under contract to DSTL.

Skills:

Centos Linux, C++, GNU tool chain, CUDA, RAD, MySQL, wxWidgets (wxGTK).



Client:

L-3 TRL Technology, Tewkesbury, May 2009 – November 2009

Project:

Telecoms (Defence Electronics Division)

Description:

Support for user trials and delivery of a telecommunications system, including debugging, design and development of embedded software in C++, and user documentation.

Skills:

Telecoms protocols, C++, UML, Perl, Fault Tree Analysis, Windows XP (Professional/PC104 Embedded), Altera NIOS II soft-core (FPGA embedded) processor, Visual Studio, MFCs, Bugzilla, CVS.



Client:

Government Department, Cheltenham, August 2008 – April 2009

Project:

Technical Processing Systems.

Description:

Design and development of systems in C++.

Skills:

Redhat Enterprise Linux, C++, Rational ClearCase & ClearQuest, Communications protocols.



Client:

EADS, Newport, May 2008 – August 2008

Project:

Skynet 5 Military Telephony System.

Description:

Design, development and testing of software for the UKs Skynet 5 military telephony system.

Skills:

Solaris 10, C++, Telephony protocols.



Client:

L-3 TRL Technology, Tewkesbury, October 2007 – April 2008

Project:

Cryptography (Electronic Security Division)

Description:

Work for the Electronic Security Division included researching and writing a report entitled “TAMP/CMS High Throughput Study” (end customer CESG); and development of a JAVA interface between the MiniCatapan management GUI and the SNMP4J library.

Skills:

Cryptographic protocols. Elliptic Curve Cryptography. OpenSSL. Trust Anchor Management Protocol. Cryptographic Message Syntax. ASN.1. Asn1c. SNMP. SNMP4J. NET-SNMP. JAVA. NetBeans IDE.



Client:

L-3 TRL Technology, Tewkesbury, March 2005 – October 2007

Project:

Telecoms (Defence Electronics Division)

Description:

Software design, development, integration and field trials of a number of telecommunications systems for TRL's Defence Electronics Division. Additional tasks included writing security policy for Windows XP platforms based on NSA guidelines, installation and administration of Open Source tools under Linux, and development of Perl scripts in support of the software team.

Skills:

Telecoms protocols, C++, UML, Perl, Windows XP (Professional/PC104 Embedded), RedHat Linux, Altera NIOS II soft-core (FPGA embedded) processor, Visual Studio, Bugzilla, CVS, Rational Rhapsody.





Client:

EDS Defence (Hook) October 2004 – February 2005

Project:

Military messaging

Description:

Undertaking a number of projects for the CMG (Communications and Messaging Group) within EDS Defence, involving JOCS-based systems. Work has included building mail server simulators, translating between SMTP and X400 email formats, address book exchange, and developing MS-Office COM add-ins in Visual Basic

Skills:

Solaris 2.6, Windows 2000 & XP, Red Hat Linux, Perl, VB, COM/Active-X, Korn shell, MS-Exchnage, X400, X500, SMTP, JOCS





Client:

EDS Defence (Hook) January- October 2004

Project:

JOCS security issues

Description:

Analysis of security issues relating to web-based military document management systems based on the JOCS system developed by EDS Defence. Design and implementation of secure features in Perl. Following successful completion of the initial project involving CDD (Collateral Dissemination Domain), DGW Software was engaged to perform similar work on two other JOCS-based systems. 

Skills:

Solaris 2.6, Perl, CGI scripting, JOCS, web application security issues.



Client:

QinetiQ, Malvern, February-May 2004 (10 days consultancy)

Project:

STANAG 7023 consultancy and browser enhancements

Description:

Assisted a QinetiQ team in the analysis of STANAG 7023 data, by installing the STANAG 7023 Browser and C++ libraries (developed by DGW Software in 2001, see below) on a Linux PC, discussing the requirements, implementing a number of new features in the Browser, writing C++ programs (using the STANAG 7023 library) to extract data, and providing some Perl scripts for further analysis of the output.

Skills:

 Linux (RedHat and Mandrake), C++, Tk/Tcl



Client:

Thales (Bristol, Crawley) May - October 2003

Project:

Future Carrier (CVF)

Description:

Use and development of a model for analysis of aircraft operations from aircraft carriers. This involved using the SAILOR modelling software developed by Thales, and also some development of the tool under Visual Studio, including debugging with the Purify memory analysis tool.

Skills:

Windows 2000, Visual C++, Purify for Windows, CygWin. TRIBON.



Client:

QinetiQ (Malvern) February 2002- December 2002

Project:

Computer Generated Holograms

Description:

Porting and Development of software for post-processing of computer-generated holograms. A QinetiQ/Ford research project with the goal of producing real-time, moving, colour, computer generated images on holographic displays. The initial work involved porting software from SGI graphics platforms to an 80-node Linux MPI cluster. Further work involved development and testing of algorithms based around Fast Fourier Transform techniques.

Skills:

UNIX (SGI/IRIX), Linux 80-node Cluster, MPI, OMP, C, CVS, FFT methods.





Client:

Rainbow Consulting LTD January 2002

Project:

Pinegate

Description:

Developing internal website for Panasonic television products. This work was subcontracted from Rainbow Consulting LTD, and undertaken at DGW Software's premises. The Apache web server was run under RedHat Linux.

Skills:

Linux, Apache, HTML, Perl, Template Toolkit, CGI



Client:

QinetiQ Land Systems (Malvern) July 2001- November 2001, & January 2002

Project:

STAR

Description:

Developing software to format imagery from the STAR model into STANAG 7023 format, making use of the STANAG 7023 libraries written for the RAPTOR project.

Skills:

UNIX (SGI/IRIX), Linux, C++, RCS



Client:

QinetiQ Land Systems (Malvern) April 2001- June 2001

Project:

STANAG 7023 Browser

Description:

Design and development of graphical STANAG 7023 File Browser, using Tk/Tcl GUI and the STANAG 7023 libraries developed by DGW Software for the RAPTOR project. The browser reads large files and allows searching and display of data packets in binary and human-readable format.

Skills:

UNIX (SGI/IRIX), Linux, C++, Tk/Tcl, RCS



Client:

DERA Land Systems (Malvern) April 2000- March 2001

Project:

RAPTOR

Description:

Updating the STANAG 7023 software written last year to a new edition. Implementing features specific to the Reconnaissance Airborne Pod for Tornado (RAPTOR) and modelling data generation for this system. 

Skills:

UNIX (SGI/IRIX), Linux, C++, RCS.



Client:

DERA Land Systems (Malvern) April 1999 - March 2000

Project:

STANAG 7023 test data

Description:

Designing and implementing software to generate test data compliant with STANAG 7023 draft NATO standard. Modelling arial reconnaisance missions to generate such data.

Skills:

UNIX (SGI/IRIX). C++, Windows NT & CygWin, RCS.



Client:

DERA Electronics Division (Malvern) April 1999 - March 2000

Project:

MOPAF enhancements

Description:

Upgrading the MOPAF parameter fitting software (see below). 

Skills:

UNIX (SGI/IRIX). C++, X/Motif, XDesigner, Rogue Wave, XRT widgets, RCS.



Client:

Defence Evaluation Research Agency (Malvern) July 1998 - March 1999

Project:

FRASCATI  & INFRACAL enhancements

Description:

INFRACAL: adding full support for alpha channel in backgrounds and targets, and import/export of TIFF images to/from Adobe Photoshop. FRASCATI: use of Emerald for detector simulation part of the algorithm. Perl scripts to integrate.

Skills:

UNIX (SGI/IRIX 5.3 & Redhat Linux). C, Khoros, Fourier Transform and image processing methods, Perl, TIFF, Photoshop, RCS.



Client:

Defence Evaluation Research Agency (Malvern) January 1998 -March 1999

Project:

Emerald sensor simulator.

Description:

Development of a GUI for the Emerald sensor simulator project.The GUI displays images, edits data files, calls the analysis program to simulate elements of an infra-red detection system, and displays the results. Preparation for ISO-9000 audit. Porting analysis program to Linux/egcs. Development of Emerald demonstration to run on WWW.

Skills:

UNIX (SGI/IRIX 6.2). C++, X/Motif, X-Designer. HTML/CGI/Perl.



Client:

Defence Evaluation Research Agency (Malvern) January 1997 - January 1998

Project:

FRASCATI image processing system & INFRACAL enhancements

Description:

Development of an image processing system to assess target detection probabilities at infra-red wavelengths. Developing interface to run FRASCATI from INFRACAL, and modifications to INFRACAL to support an alpha channel, read AVIRIS TIFF target images, and merge them on top of background images.

Skills:

UNIX (SGI/IRIX 5.3 & Redhat Linux). C, Khoros, Fourier Transform and image processing methods, Perl, TIFF.



Client:

Defence Evaluation Research Agency (Malvern) August-November 1997.

Project:

IMC demonstration project.

Description:

Proposer, designer and technical project manager of a system to demonstrate the provision of analysis software over an intranet in a platform-independent manner. For DERA Imaging Modelling Centre.

Skills:

UNIX (SGI/IRIX 5.3), W/NT. Netscape FastTrack Web server, NTRIGUE, Exceed PC-X-Server, Perl/CGI.



Client:

Defence Evaluation Research Agency (Malvern) September-October 1997

Project:

MOPAF data translator enhancement

Description:

Enhancement of MOPAF by addition of 3D visualisation capabilities.

Skills:

UNIX (SGI/IRIX 5.3). C++. X/Motif. X-Designer. Rogue Wave C++ standard library and maths libraries, XRT/3D.



Client:

Defence Evaluation Research Agency (Malvern) January 1997

Project:

CFFConvert translator GUI.

Description:

Development of a GUI for managing translators between image file Formats.

Skills:

UNIX (SGI/IRIX 5.3). C, X/Motif, X-Designer.



Client:

Defence Evaluation Research Agency (Malvern) June-December 1996

Project:

MOPAF data translator

Description:

Development of an X/Motif driven data translator for thermal imaging systems. Involves numerical parameter fitting and graphical display of data. Analysis, OOD and implementation using XDesigner, C++ standard library, Rogue Wave maths library, XRT/graph.

Skills:

UNIX (SGI/IRIX 5.3). C++. X/Motif. XDesigner. Rogue Wave Wave C++ standard library and maths libraries, XRT/graph, RCS.



Client:

Defence Evaluation Research Agency (Malvern) January-June 1996

Project:

INFRACAL thermal image calibration tool.

Description:

Porting the software from SUN/Spark to SGI/Indy workstations. Writing project plan, requirements and user documentation. Eliminating memory bugs with Purify. Debugging calibration code. X/Motif development to bring software to a commercial standard. Installation on clients sites.

Skills:

UNIX (SGI/IRIX & SunOS). C. X/Motif/UIL, RCS, Purify. Thermal/numerical analysis. Requirements/User documentation.



Client:

TA Consultancy Services Limited September-November 1995

Project:

Independent Technical Assessment of Sizewell B Primary Protection System Test Coverage.

Description:

Joined the TACS team assessing the Westinghouse in-house test coverage. This involved assessment of test strategies, scrutiny of results and all associated documentation, and writing reports.

Skills:

PLM, Sizewell B PPS, Dynamic testing Procedures.



Client:

TA Consultancy Services Limited July-September 1995 Project: WASP/IL Translator.

Project:

WASP/IL Translator.

Description:

Design and development of translator from WASP Assembler to Malpas Intermediate Language, using YACC and LEX.

Skills:

Malpas IL, MKS Lex & Yacc, Turbo Pascal, VAX Pascal, DOS/Windows, VMS.



Employer:

FSC Limited October 1994 - July 1995

Project:

Formal-FTA (Project Officer).

Description:

Development of FSC Limited?s Formal-FTA (Fault Tree Analysis) software tool. Designed and implemented substantial extensions to the existing tool, including:

  • Grahical User Interface

  • Cut Set Generation

  • Monte-Carlo Analysis

  • Performance Improvements

  • Administration of DTI grant in support of project

Skills:

UNIX (Solaris 2 & SunOS 4), C, X/Motif, PostScript, FrameMaker, SCCS.



Employer:

FSC Limited February 1995

Project:

ISCP (for European Space Agency, ESTEC)

Description:

Designed and performed the numerical experimentation workpackage of the Intersimulation Communications Protocol development; a system for coupling multiple analysis packages across a network for time-dependent simulation. This involved coupling separately compiled thermal models, created with the ESATAN thermal analysis package, via the ISCP software. Prepared a study document and recommended correct procedures.

Skills:

UNIX (Solaris 2 & SunOS 4), RPC, Fortran, C, C++, ESATAN, SCCS



Employer:

European Gas Turbines 1992 – 94

Project:

ESATAN GUI (for European Space Agency, ESTEC)

Description:

Designed, prototyped and (with others) implemented an advanced Graphical User Interface for the ESATAN thermal analysis package.

Skills:

UNIX (SunOS, Posix, HP-UX), C, X/Motif, SCCS, UIMX, ESATAN, Sparc, HP.



Employer:

European Gas Turbines 1990 – 94

Project:

ESATAN Syntax Checker (for European Space Agency, ESTEC)

Description:

Designed and implemented a YACC/LEX syntax checker for the ESATAN Thermal Analysis Package. Responsible for several upgrades. Porting software from Sun to HP.

Skills:

YACC/LEX, UNIX (SunOS, Posix, HP-UX), C, SCCS, ESATAN, Sparc, HP



Employer:

European Gas Turbines 1993 - 94 (3 months)

Project:

Fortran 90 Study and Course Development

Description:

Completed a study of the ANSI/ISO Fortran 90 language, comparing it with Fortran 77, C and C++, and assessing its suitability for use in large software developments. Presented a seminar on the language. Developed and presented a two-day hands-on programming course.

Skills:

UNIX, Fortran 90, C, C++, Sun SparcStation.



Employer:

European Gas Turbines 1994 (3 months)

Project:

ESABASE User Manual (for European Space Agency, ESTEC)

Description:

Wrote the ESABASE User Manual (Using Interleaf)

Skills:

ESABASE, Interleaf



Employer:

European Gas Turbines 1992 - 93 (6 months)

Project:

Orbit Generator User Interface (for European Space Agency, ESTEC)

Description:

Designed and developed a user interface for the SAPRE orbit generator of the ESABASE space-craft design/analysis package. Completed upgrades to the orbit generator software.

Skills:

ESABASE, SAPRE, VAX/VMS, FORTRAN 77, Menulib/Curses libraries.



Employer:

European Gas Turbines 1990 - 92

Project:

ESATAN development (for European Space Agency, ESTEC)

Description:

Responsible for devising and implementing numerical algorithms as a part of upgrade contracts to the ESATAN thermal analysispackage. This included

  • A conductor calculation module for the ESARAD thin-shell radiative analysis package. A finite element method was used. 

  • Design and development of FGENSS, a two-phase steady-state solution routine for ESATAN/FHTS (Fluid Heat Transport System).

Wrote substantial sections of the ESATAN Engineering Manual.

Skills:

ESATAN, UNIX(SunOS), C, Fortran 77, SCCS, Sun SparcStation, numerical methods, fluid mechanics, heat/mass transfer.



Employer:

Durham University Physics Department 1986 - 88

Project:

1000 GEV Gamma Ray Astronomy

Description:

Joined Durham University's Atmospheric Cerenkov Gamma-ray astronomy group. Carried out a number of programming tasks associated with data analysis. Also involved in experimental work with fast photomultipliers, and with telescope operation and maintenance in Narrabri, New South Wales.

Skills:

UNIX, C, VAX/VMS, BBC micros, BASIC



Employer:

British Railways Board 1985 - 86

Description:

Involved in software development for BR Research Division:

  • Developed a compiler for a computerised level crossing controller. 

  • Worked on a CAD package for the layout of overhead electrical equipment. 

  • Designed and implemented an air contamination-modelling package for railway tunnels.

Skills:

UNIX, C, YACC/LEX, BASIC, FORTARN 77, Informix, Cifer mini-computer, IBM mainframes, BBC micro.



12/12