Availability
September 2007
Key skills
Mentoring: In my role at Microlise I
was responsible for coaching development staff working in
a wide range of roles: Project Management, Business
Analysis, Systems Architect, Design, Programming and
QA.
Java: I have 7 years experience with
Java and have worked with a range of J2EE technologies. I
have published articles relating to Java in Java Report,
Overload and C Vu.
C++: I have 16 years experience with
C++ and am a member of the BSI C++ Panel and represented
the UK at the 2003 ISO WG21 meeting. I have published
articles relating to C++ in C/C++ Users Journal, EXE,
Overload and C Vu.
OOA/D: I have 19 years experience of
Object Oriented methods and was responsible for
introducing them the development groups in my last two
permanent roles. I have published articles relating to
OOD in EXE, Overload and C Vu.
Profile
I am an experienced software developer with particular
strengths in Object Oriented methods and technologies.
These include Agile Methods, Java, C++, Object-Oriented
Design and Generic Programming. I have a good working
knowledge of tools and technologies like CVS, UML, HTML,
XML, SQL, make, Ant, and JUnit.
I have prepared and presented on technical subjects
both internally to employers/Clients (Barclays Capital,
Microlise and Experian) and at conferences. I have also
written feature articles for a range of technical
publications.
In my recent placements I have had responsibility for
continuous improvement of the software development
process including the introduction of methods and tools,
the mentoring of project management and development
staff, and responsibility for ensuring effective use of
development technologies.
Employment History
[twelve month contract] Barclays Capital (February 2005
to February 2006)
The development group with which I worked provides
front-office support for equity derivatives trading.
During this contract I provided coaching for management
and developers undertaking a project significantly larger
than departmental norm, and participated in a project
that increased the scope, reliability and capacity of the
exotics risk calculation system. This work included
process development (especially the automation of the
build and regression test environments) and streamlining
the rollout process.
[twelve month contract] Barclays Capital (November 2003
to October 2004)
The development group with which I worked provides
front-office support for equity derivatives trading.
During this contract I established the technical
interviewing process for Java and C++ developers,
provided coaching for management and developers
undertaking a project significantly larger than
departmental norm, and participated in the project that
developed and deployed a new generation of exotics risk
calculation system. This work included process
development, selection and deployment of development
tools, system design, implementation and deployment.
[three month contract] Barclays Capital (July 2003 to
October 2003)
The development group with which I worked provides
front-office support for equity derivatives trading. My
role was to provide support for the adoption of Java
within the group, reviewing development processes and
standards, the development of C++ library and COM
components and technical assessment of job applicants
during expansion of the development group.
Microlise Limited (January 2001 to June 2003)
The principal development activity of the development
group in which I worked is to build bespoke warehouse
management systems software. By orchestrating a rethink
of the system architecture and instituting a method of
reusing work across projects I enabled the development of
a standard base system that can be extended to meet
specific customer requirements.
The primary development platform is Java on WindowsNT
this is used to target a range of platforms including
WindowsNT, AS/400, Solaris and other UNIX version. Other
development tools and technologies used are GDPro, CVS,
Ant, CruiseControl, Websphere, WebLogic, DB2, Oracle and
SQL-Server.
I was initially recruited to Microlise to bring OOA/D
skills into the software development group. In doing this
it became apparent that I needed to address issues
throughout the development process. During the period up
to April 2002 I did so on a series of individual
projects. The result was a dramatic improvement in
estimating, quality, costs and morale and led to my
appointment as "Software Development Champion" in April
2002.
Between April 2002 and June 2003 my objectives were to
work with developers, the project management team and
senior management to implement a more predictable and
efficient project lifecycle. This involves:
- liaison with the sales team to establish an
estimating and tendering process that meets the needs
of both development and sales;
- mentoring business analysts to ensure efficient and
effective communication with customers, users and
software designers;
- ensuring that project management have identified
effective exit criteria for work products;
- teaching software designers about OO methods and
mentoring them to ensure that design is done at an
suitable level of abstraction and communicated to the
developers;
- working with developers to improve knowledge of the
language and provide guidance in the use of unit
tests;
- persuade with senior management to institute a "QA"
role to monitor the development process and ensure that
work products are validated before being marked as
"complete";
- supporting the "QA Champion" to prevent the role
becoming that of "integration tester".
Experian Limited (1981 to January 2001)
Experian has undergone a number of changes during this
time (when I joined it was called Midland Household
Stores, and was subsequently called CCN Group). It has a
number of divisions addressing different markets and I've
moved between them a number of times. The most recent of
these is:
Micromarketing division - (from 1995 to
2001)
I was recruited to the division in 1995 to bring
OOA/D, C++ and Windows skill into the development group
and facilitate reworked the exiting DOS/Borland-Pascal
product into Windows/C++. In addition to my role in
facilitating migration to the new target environment and
development tools I had architectural design
responsibility for the design for what has become the
flagship software product Micromarketer and led the team
that developed the data analysis engine at the core of
it.
My workstation hosted the team's intranet website -
this documents the development process, relevant
standards, guidelines and tutorials, and indexes project
specific information (hosted by the workstations of
appropriate developers). For historical reasons this used
the Apache webserver, although I've also used Tomcat to
host a JSP demonstration of ContactCoder (described
below). I used IIS and JWS webservers, but not on a
regular basis.
The primary development platform of the software
development group was WindowsNT using Visual C++. Other
development tools used are GDPro, Visual SourceSafe,
Boundschecker and Doxygen.
However, more recently the range of tools and
platforms has been extended. In mid-1999 I established a
"software components" development strategy. This was a
new departure for the division as it involved the
development of software for integration into third party
applications with support for multiple platforms.
The first product in this family ContactCoder is
written in a mixture of portable C++ (for the "engine")
and Java (for the User Interface and some utilities). It
is currently supported on WindowsNT (Visual C++, gcc, and
Borland C++/JDK1.2-JDK1.3) and Solaris/Sparc
(gcc/JDK1.2). The Cygwin toolset is used to support the
GNU development tools (such as 'make') on Windows and the
same tools are used on Solaris (and on other platforms as
support is extended). Development across these platforms
is co-ordinated using CVS (it was free, cross platform
and, although it has flaws, has more functionality than
VSS).
Interests
Professional
ACCU: ACCU is an association of
software professionals with a focus on
C++/C/Java/C#/Python and related languages, tools and
disciplines and maintains a website at http://accu.org/.
Between 1999 and 2003 I was elected Chair of ACCU. I am
currently editor of ACCU's journal Overload.
Writing: I've been writing technical
articles since the early 90's and have been published in
Overload, C/C++ Users Journal, Java Report, C Vu, and
EXE. Many of these articles are available from my
website. (There is also an open source C++ library
written to illustrate some of these articles.)
Conferences: In addition to reading
and writing I find the best way to keep my skills current
is to attend (and talk at) relevant conferences. In
particular the OT and ACCU conferences.
Standards: The compiler vendors,
library vendors and training organisations that dominate
the C++ standards working groups do not always appreciate
the concerns of practising users of the language. I have
found it both necessary and informative to represent
these concerns in the standards process.
Chess
I play for Bunker's Hill Chess Club and (in the
1980's) have played chess at county level.
Bridge
I have been playing bridge at local level since 1974
and played at county level between 1988 and 1994 (after
which family commitments made this infeasible) I have
developed and presented courses for beginners and
intermediate level players. (This course is available
from my website.)
Elected to the Nottinghamshire Contract Bridge
Association Committee, 1990-1994. Instituted and managed
the NCBA Team of Four League 1990-1992, Editor of the
County Bulletin 1994-95.
Other
In addition to professional publications I read
popular science and science fiction. I enjoy listening to
classical and rock music.
Education
B.Sc. (Hons) in Mathematics, Nottingham University
1976-1979
4 A levels: Pure Mathematics, Applied Mathematics,
Physics, Chemistry
8 O levels
|