|
Curriculum Vitae
Personal Details
Date of Birth: 4
May 1957
Nationality:
British
Marital Status:
Single
Education
Sheffield University,
B.Sc. Pure Mathematics (Special Honours), First Class (July
1979).
Manchester University,
M.Sc. Computer Science (September 1980).
Publications
Co-author of the paper
[snip] presented to the [snip], London, April 1988.
Languages
Bilingual:
French/English (including writing technical documents in
French).
Courses attended
The Instruction Set Unix
Kernel Design, 1987.
The Instruction Set Unix
Systems Administration, 1987.
Sun Enterprise Cluster
High Availability 2.x Administration, April 1999.
Disclaimer
Please note that I have
no direct experience of the MVS world. My experience of COBOL/CICS/DB2
comes from porting such MVS applications to other environments.
Personal Interests
Contributed PHP/MySQL
scripts and some basic JavaScript to the implementation of the
British Automobile Racing Club -
South Eastern Centre web
site
Employment History
[snip], Salford,
England (08 Jan 2007 – 30 Oct
2007)
Position: Designer and Solaris
Engineer, BT Solaris Consolidation Project
Platforms: Solaris 10 on T2000, V490.
Skills: Solaris 10.
I am working in the Design, Analysis and
Planning (DAP) team on a large consolidation and virtualisation
project for [snip]. Half of the DAP team is composed of Sun
personnel. The goal is to migrate the applications from about
1000 servers to Solaris 10 zones on about 150 latest generation
Sun (mainly T2000) servers.
The application environments to be migrated
include clustered servers (VCS and Sun Cluster) and large Oracle
databases.
[snip],
Brussels, Belgium (05 Dec 2005 –
30 Nov 2006)
Position: Contract SAN Administrator
Platforms: HP-UX on a range of HP
machines, Solaris on range of SUN and Fujitsu-Siemens machines;
Tru64 on a range of Alpha machines; EMC Symmetrix (DMX, 8730);
HDS 9580; NetApp FAS900.
Skills: Solaris 8 and 9, Tru64
v5.1, HP-UX v11.2, SYMCLI, script writing (Perl, Korn), EMC
Control Center, EMC Connectrix, technical documentation.
I worked on site at [snip], near Antwerp, as
a SAN administrator on an outsourcing project involving [snip].
I worked onsite at [snip], near Charleroi, for the first 4
months.
I wrote the SAN and NAS administration
procedures that are used daily by the SBS administrators.
I developed a set of Perl scripts to
facilitate Symmetrix device administration via SYMCLI. I
developed a set of Perl scripts to generate reports on Symmetrix
device allocations for presentation to [snip].
I also developed scripts to automate the
basic task of growing an existing file system using Perl and a
small Oracle database. The scripts also interface with the EMC
StorageScope database. The intention is that these scripts will
be used by operators.
I provided analysis and resolution of
problems as they arose. I provide technical solutions for
projects that are outside the remit of the SLA. In particular, I
developed Perl scripts that facilitate the migration of Solaris
and Tru64 file systems on from a Symmetrix or a HDS storage
array to another Symmetrix array without interruption to the
servers.
[snip], Madrid,
Spain (17 Mar 2005 – 28 Oct 2005)
Position: Contract Consultant in the
Professional Services Group
Platforms: Solaris 8 on E4500 and V440.
Skills: [snip] Email Mx, Unified
Messaging and Webedge, Solaris 8, Sun Cluster 3.0, script
writing (Perl, Korn, sqlplus, JSP/Java, TCL, LDAP).
I worked on an email and voicemail project at
[snip] in Barcelona until the end of July 2005.
I worked on a video/voice mail project at
[snip] in Lisbon from mid August 2005 until the end of October
2005.
I installed and configured early release
versions of [snip] products and tested them. I customised TCL
scripts involved in SMS generation. I wrote scripts to support
provisioning activities on the LDAP directory. I documented
installation and upgrade procedures.
At [snip] I performed JSP/Java customisations
to the Resin-based Webedge browser application. I also
integrated some new applications into the Sun Cluster 3.0
configuration using GDS.
At [snip] I configured private (non-Internet)
DNS servers.
[snip],
Guildford, England (1 Oct 2004 –
18 Feb 2005)
Position: Contract Unix Systems
Administrator and Oracle Database Administrator on the [snip]
Outsource
Platforms: Solaris 8 and 9 on SF12K and
SF15K with clustered domains, V440, V880, and V1280, with EMC
Symmetrix.
Skills: Solaris 8 and 9, Sun
Cluster 3.0 and 3.1, Oracle 9i (administration, performance,
PL/SQL), Oracle 10g (administration), EMC SYMCLI (Timefinder,
SRDF and Base Management) , Veritas Volume Manager 3.2 and 3.5,
script writing (awk, Perl, Korn, sqlplus), Legato Networker 6,
Systems Programming (in C).
Installed Oracle 10g and migrated a clone of
a production database for test purposes.
Problem identification and resolution at
hardware, system (Solaris and Veritas) and application levels.
Provided technical support to application
developers to resolve problems and improve performance.
Identified a problem with Unidata timeouts
and provided a solution in the form of an interposition module
written in C to modify low-level functionality.
Designed and implemented a set of Perl
scripts building on the CPAN POP3 and MIME modules to replace
and improve on an existing mail handling subsystem based on
OpenPath.
Provided a procedure and associated scripts
using transportable tablespaces to export tablespaces from one
Oracle database and import them into another.
[snip], Guildford,
England (4 Aug 2003 – 30 Sep 2004)
Position: Contract Unix Systems
Administrator and Oracle Database Administrator
Platforms: Solaris 8 on SF15K with
clustered domains, V880, V1280, Solaris 7 on E10K and a range of
Ultra-Enterprises, ReliantUnix 5.45 and 5.43 on a range of
RM600s, with an EMC Symmetrix.
Skills: Solaris 8, Sun Cluster
3.0, Oracle 9i (administration, performance, Streams, PL/SQL),
Oracle DataGuard, EMC SYMCLI (Timefinder, SRDF and Base
Management), Veritas Volume Manager 3.2 and 3.5, script writing
(awk, Perl, Korn, sqlplus), Oracle 10gAS installation,
ReliantUnix, Legato Networker 6.
Redesigned and reconfigured the SF15K domain
cluster to meet changed business requirements. Placed a Unidata
database server and an Oracle 10gAS infrastructure under cluster
control using the Generic Data Service.
Configuration of Oracle 9i within the SF15K
domain cluster, and for the requirements of Disaster Recovery.
Administered, cloned and tuned Oracle 9i
databases on the SF15K clustered domains. Designed and
configured the underlying filesystems to maximise database
performance using “double-striping” and directio. Reconfigured
the physical architecture of databases to improve performance
and to conform to Oracle 9i best practices.
Produced a proof-of-concept Oracle
Streams implementation to replicate data from a production
database to an Operational Data Store.
Automated backups using Timefinder and
Networker CLIs.
Worked with a Sun PS consultant to configure
primary and standby databases to meet Disaster Recovery
requirements using Oracle DataGuard.
Problem identification and resolution at
system (Solaris and Veritas) and application levels.
Investigation and identification of a performance problem
involving process communication across the crossbar switch in a
V1280.
Provided technical support to application
developers.
[snip],
Luxembourg (22 Apr 2002 – 28 Feb
2003)
Position: Unix Systems Engineer (under
contract to Siemens)
Platforms: ReliantUnix 5.45, on RM300E70
and RM600E45, with FibreCAT disk array using Brocade fabric
switch.
Skills: ReliantUnix (Sinix) with
Virtual Disks, problem analysis, Legato Networker, automount,
script writing (Perl, Korn), programming (C, Natural), Adabas
(basic administration).
Provided technical support for the migration
of Natural/Adabas applications from 32bit ReliantUnix 5.43 to
64bit ReliantUnix 5.45. Identified and corrected an error in the
multi-path configuration of the FibreCAT. Analysed and provided
corrections to the C functions embedded in the Natural
executable. Identified and corrected errors in Natural programs.
Provided analysis of Sinix crash dumps. Provided analysis of
misbehaving programs including Adabas components. Identified an
implementation error in the system() libc function and provided
a work-around. Identified a race condition in the Adabas driver
in the kernel. Identified certain Natural runtime errors as due
to incorrect use of signals with pthreads. Implemented a pthread-safe
version of signal() for use in an interposition library.
Build and installation of Gnu Multi-Precision
Arithmetic Library. Identification of a compiler bug.
Implementation of multi-precision arithmetic user-exit for
Natural.
[snip],
Sandwich, England (20 Aug 2001 –
22 Feb 2002)
Position: Contract Senior Unix Systems
Administrator
Platforms: Solaris 2.5.1, 2.6, and 8 on
whole range of Ultra and Ultra-Enterprise up to E6500, Solaris
2.6 on an E4500 cluster, with SSAs, A3500 and A5x00 disk arrays.
IRIX 6.5.13 on [snip] Origin 2000 and Octane.
Skills: Solaris, Sun Cluster
2.2, SDS, Veritas Volume Manager, Legato Networker, NIS,
automount, DNS, script writing (Perl, Korn), Samba, sendmail,
Irix.
Performed general systems administration,
support and troubleshooting. FDA compliancy requirements
required strict change-control procedures.
Produced procedures describing cluster
shutdown/startup, project share allocation and various other
system administrator tasks.
Developed a test environment to demonstrate
reliably a problem on [snip] clients of Solaris NIS servers
whereby the [snip] client would fail to find valid map entries.
This was accepted by [snip] as a bug.
[snip], London,
England (30 Apr 2001 – 20 Jul
2001)
Position: Contract Unix Systems
Administrator
Platforms: Solaris 2.5.1, 2.6, 7 and 8
on whole range of Ultra and Ultra-Enterprise including E10000.
Skills: NIS, automount, Solaris,
SDS, Veritas Volume Manager, script writing (Perl, Korn).
Performed general systems administration and
troubleshooting.
Developed Perl scripts to generate system
reports and audits (e.g. to verify the validity of the
host/console NIS mappings; to identify those Veritas volumes
which were not completely mirrored).
Identified the cause of performance problems
(thrashing) on a Sybase server as due to overly optimistic use
of shared memory.
[snip]
, Windsor,
England (4 Oct 1999 – 13 Apr 2001)
Position: Contract Senior Systems
Engineer in the Professional Services Group
Platforms: Solaris 2.6 on
E450/E3500/E4500, Solaris 2.6 on E4500 clusters, with D1000,
A5100 and A5200 disk arrays, HP‑UX 11 on N4000 and N7000 with
XP256 disk arrays, EMC Symmetrix disk arrays.
Skills: InterMail Mx, Solaris,
Sun Cluster 2.2, Veritas Volume Manager, VxFS, Oracle 7 and 8
(basic administration), PL/SQL stored procedures and triggers,
Oracle Advanced Queuing and Partitioning, script writing (Perl,
Perl with DBI, Korn, LDAP), sendmail.
InterMail Mx deployment, customisation, and
consultancy services (including system administration) at:
[snip], England (3 months); [snip] Italia Network (TIN), Italy
(9 months); NEC/NTT, Japan (3 months); Shanghai Online, China (1
month); [snip], Italy (6 weeks);[snip] Ipswich, England (1
week).
At TIN I redesigned and re-implemented the
High Availability and disk architectures to give fast and
reliable failover for InterMail and Oracle. I optimised disk
performance under Volume Manager. I wrote a suite of Perl
scripts to produce InterMail performance reports.
At [snip] I identified and corrected a
problem with the configuration of Veritas Cluster logical
addresses while testing and refining application failover.
At [snip] I worked on
the design and implementation of a back-office Statistics
Server to support data mining activities while not affecting the
front-office WAP gateway. I used Oracle 8.1.6 making use
of Partitioning and the Advanced Queueing option, PL/SQL, and
Perl with DBI.
[snip], The
Hague, Holland (6 Apr 1999 – 30
Sep 1999)
Position: Contract Senior Systems
Administrator
Platforms: Solaris 2.6 on an E10000
cluster with A5100 and A5200 disk arrays.
Skills: Solaris, E10000, Sun
Cluster 2.1 and 2.2, Solaris Backup (Legato Networker), Veritas
Volume Manager, VxFS, Oracle 7 with Enterprise Backup (EBU)
(basic administration), script writing (Perl, Korn).
General system administration in a 24x7
production environment. Cluster High Availability
administration. Member of the Capacity Planning and the
Performance Enhancement teams.
I designed and implemented a new HA
architecture to improve resource usage and performance. This new
architecture also gave fast and reliable failover of the
applications running on the various clustered domains of the
E10Ks. The applications included Oracle and the Customer Care
and Billing System (CCBS) product.
I provided analysis of current performance.
With these figures I was able to justify, in particular, the use
of priority paging and to improve Volume Manager performance by
modifying the A5x00 disk layouts. I also identified performance
problems associated with CCBS Oracle clients. I modified the
Legato Networker configuration to improve backup performance
whilst maintaining the general system performance as acceptable.
I produced projections of future performance
to allow timely acquisition of extra RAM and extra disk
capacity.
I analysed the Client-side SQL code that ran
against the Oracle databases to propose performance
enhancements.
I provided support to the CCBS developers to
identify performance bottlenecks and to investigate alternative
strategies.
[snip], Brierley
Hill, England (4 Jan 1999 – 2 Apr
1999)
Position: Contract Systems
Administrator
Platforms: Solaris 2.6 on an E4000
cluster with A3500 disk arrays.
Skills: Solaris, Sun Cluster
2.1, Oracle 7, Solaris Backup (Legato Networker), script writing
(Korn, awk, Perl).
System administration of back-office E4000s
for Egg online banking. Developed scripts: to monitor Solaris
and Oracle activities and provide timely warnings of errors; to
gather and process system statistics to produce resource usage
trends; to automate backup procedures using the Solaris Backup
product.
Provided technical analysis to management.
Provided technical support to developers. Identified a serious
performance problem as due to inefficient implementation in a
middleware component and provided a solution. Identified and
provided solutions to application problems in the production
environment.
Improved the performance of data processing
scripts to reduce execution time from 7 hours to 2 seconds.
[snip], Berlin,
Germany (26 Jan 1998 – 31 Dec
1998)
Position: Contract Systems
Administrator/Engineer in China
Platforms: Solaris 2.5.1/Sun E4000,
Cisco 4700.
Skills: Solaris, ODS, TCP/IP,
X.25, Oracle 7 (basic administration), script writing (Perl,
Bourne, Korn).
Installation and system administration of OMC
machines for GSM networks in China. Technical support for local
operators. Troubleshooting.
Specified administration and trouble-shooting
procedures for local operators. Developed scripts to facilitate
such tasks.
[snip], Paris,
France (Dec 1995 - Dec 1997)
Position: Contract Designer/Developer
Platforms: OS/2, Unix (HP 9000, IBM
RS6000, Siemens RM300), Windows 95/NT.
Skills: OOD, VisualC++, MFC,
TCP/IP, Client/Server Design, C, MF COBOL, CICS, DB2/2, Oracle
7, Sybase, script writing (awk, Bourne, Korn, REXX).
Design and development of a DB2/CICS
emulation environment for COBOL programs under Oracle7/AIX.
Ported [snip] Fregate suite of COBOL programs
and associated data to this new environment, via a suite of awk
and sed scripts that completely automated the code
transformations.
Design and development of client-server
middleware. The client side consisted of a VisualC++ class
library based on MFS for Windows (95/NT) that managed, in
particular, client/server exchanges and tables of data.
Design and development of the server side
super-server that managed the environment for COBOL server
programs for the platforms CICS/DB2/OS2 and Oracle7/Unix.
Design and development of a VisualC++/MFC
class library to provide fast and effective client application
development, and of three client applications based on these
class libraries. Identification and correction of several bugs
in MFC method functions.
Ported COBOL batch programs and associated
JCL scripts from MVS to several Unix platforms (HP 9000, IBM
RS6000, Siemens RM300).
Ported COBOL SQL programs and associated JCL
scripts from MVS/DB2 to several Unix/database platforms (HP 9000
for Oracle V7 and Sybase, Siemens RM300 for Oracle V7).
Creation and administration of databases
(DB2/2, Oracle, Sybase).
[snip], Paris,
France (joint venture involving
[snip]) (Nov 1994 - Nov 1995)
Position: Contract Designer/Developer
Platforms: OS/2, Unix.
Skills: Client/Server Design, C,
MF COBOL, CICS, DB2/2 (basic administration), Oracle 7, script
writing (awk, Bourne, Korn, REXX).
Ported server applications from C/Oracle/Unix
and COBOL/DB2/CICS/MVS environments to DB2/2, in order to
provide a standalone training environment for the [snip] Fregate
application suite.
Development of integrated interface to the
training environment.
Design and development of a DLL to provide
Unix IPC emulation under OS/2.
Development of awk scripts to convert Oracle
SQL/C programs into DB2/2 SQL/C programs.
[snip],
Charleroi, Belgium (May 1994 - Oct
1994)
Position: Contract Systems
Administrator/Engineer
Platforms: Sunos/SUN.
Skills: Sunos, ODS, Oracle 6
(basic administration), C, script writing (Bourne).
System administration of OMC machines for a
GSM networks in Belgium. Troubleshooting.
Specified administration and trouble-shooting
procedures to ensure smooth running of the OMC application and
minimise downtime. Development of scripts to automate many such
tasks, in particular, an online backup script that split the ODS
mirrors and backed up from the offline halves.
Design and development of a set of utilities
to give controlled access to certain Sunos tools that require
super-user privileges, to allow operators to perform necessary
tasks without compromising system security.
[snip], Slough,
England
(18 Nov 1993 - 29 April 1994)
Position: Contract Analyst/Programmer
Platforms: Sunos/SUN, Stratus.
Skills: Sunos, Oracle 6 and 7
(basic administration), C, PRO*C, script writing (Bourne).
Maintained and developed the centrex
provisioning package CenSys which is used by [snip] to provide
the Virtual Private Network (VPN) service FeatureNet on a
network of Northern Telecom DMS-100 digital switches.
Developed prototypes to provide network
distribution of Oracle database tables using Dynamic SQL and
SQL*NET between SUN machines running Oracle version 7 and a
Stratus machine running Oracle version 6.
Identified a bug in the virtual memory
management code of the Stratus kernel.
[snip], Suresnes,
France (March 1992 - October 1993)
Position: Technical Consultant
Platforms: AIX/RS6000, Windows 3.1,
Unix.
Skills: AIX, MOTIF/X11, Oracle 6
(basic administration), C, script writing (Bourne).
July 93 - October 93
Ported a DOS based CBT application to
AIX/MOTIF and to Windows.
Enhanced a Windows based CBT program to add
VisualC++ class hierarchies to take advantage of the Microsoft
class libraries.
March 92 - June 93
Consultant to [snip] CIT, Vélizy, France for
the design and implementation of the Unix based component of the
Intelligent Network project (a freephone service). The key to
this design was a prioritised event-driven “kernel” that called
the appropriate registered callout procedure according to the
type of message received.
Developed a data-driven tool to dump data in
data structures derived from ASN1 definitions for debugging
purposes. The tool used the appropriate symbol table definitions
to format the data structures correctly.
Produced technical specifications (in French)
for the project.
Specified, configured, and supervised the
development and test environments and system administration.
Development of the base functionality for a
Unix server that interfaced to programs running on the switch,
and to a suite of Minitel/Oracle programs.
[snip], La
Défense, France (July 1990 - March
1992)
Position: Senior Software Systems
Engineer
Platforms: DOS/PC.
Skills: Borland C for DOS.
Re-implemented a multimedia program suite to
improve performance and reliability. Improved the performance of
the image scanning subsystem by a factor of 60. Modified the
memory allocation scheme to avoid fragmentation issues. Produced
debugging versions of the C library memory management functions
and an associated analysis program in order to identify memory
leaks and other misuses of these functions.
[snip].,
London, England
(July 1986 - June 1990)
Position: Technical Consultant (July
1986 - July 1989)
Position: Senior Technical Consultant
(August 1989 - June 1990)
Platforms: DRS286, MC680x0.
Skills: C, NFS, TCP/IP, X11,
script writing (Bourne), secure Unix, Unix, Unix kernel.
October 89 - June 90
Consultant to [snip] Defence Systems,
Reading, England, on a project to deliver a B1 (D.O.D. Orange
book) secure version of Unix. Provided system and network
administration and crash dump analysis.
Production of design documentation.
Responsible (with one other person) for porting and enhancing
the security features of a secure version of Unix 5..3 to the
DRS 386 and for full system testing and troubleshooting.
Identified and corrected a kernel deadlock problem in the inode
traversal code.
August 89 - October 89
Team member for the development of an
optimising C compiler for an IBM 370 compatible. Responsible for
the design and implementation of the Loop-Invariant Optimiser,
and for the development of an ANSI C compatible library.
January 88 - July 89
Consultant to graphics workstation
manufacturer CETIA, of Toulon, France, with responsibility for
kernel and graphics development. Also provided network and
system administration.
Resolved problems with the kernel graphics
code, in particular in relation to context switching and
boundary condition errors, developed new graphics functionality,
enhanced graphics performance.
Resolved problems with the NFS and BSD file
systems, and TCP/IP and pseudo-terminal drivers. Provided crash
dump analysis and enhanced the crash program.
Ported X11 versions 2 and 3, and developed a
BSD compatibility library. Designed and developed a graphics
compatibility library to allow graphics kernel programs to run
under X11 simply by relinking to the new library. This involved
simulating a procedural API without compromising the underlying
event-driven nature of X11.
April 87 - December 87
Team member for the port of Motorola's System
5.3 Unix to Lynwood diskless workstations, with responsibility
for system testing, driver development, NFS integration, and the
diskless bootstrap. Produced the macros required to run lint on
the kernel sources and so identified and corrected a variety of
programming errors which corrected several runtime problems.
Identified and corrected a bug in vi due to incorrect use of
setjmp() and longjmp().
January 87 - March 87
Team member for the development of an
application program suite to access MS-DOS format floppy disks
from a BT UNIX machine, with responsibility for high-level
functionality and testing.
July 86 - December 86
Consultant to [snip], Birmingham, England, on
a Unix multimedia project involving the capture and display of
map-related data. Designed and developed the user interface and
the graphical display structures and algorithms.
[snip].,
Maidenhead, England (June 1983 -
June 1986)
Position: Software Engineer
Platforms: CCPM/PC.
Skills: Assembler, C.
Maintained and enhanced an English/Arabic
word-processor (in 8086 assembler).
Designed and developed:
firmware to provide English/Arabic output on a terminal (in 8086
assembler); a printer front-end for English/Arabic text (in C);
printer back-ends for English/Arabic output on various laser,
daisy-wheel, and dot-matrix printers (in C).
Co-designed and developed an English/Arabic
word-processor (in C).
Manchester
University, Manchester, England
(October 1980 - March 1983)
Position: Postgraduate Researcher in
Operating Systems
Platforms: MC68000, Vax750.
Skills: MUSL, MUSS, kernel
design.
Member of the team that ported a new version
of the message-passing operating system MUSS to a Vax750, with
responsibility for the machine-dependent sections, and system
testing. Maintained and enhanced system applications. Member of
the team that designed and developed a remote file system.
Ported MUSS to a M68000 based system.
|