CV
Alan Rory Mcleod Braggins, Senior Software Engineer
mailto:armb@chiark.greenend.org.uk
Languages:
C, C++, Python, Fortran, Delphi, SQL, PM2, DASL, BaCIS.
Systems used:
Various varieties of Unix, Windows, VMS.
History
Mostly working on the
PKCS #11 interface,
though with some work on
MS-CAPI
early on, and work on the build system (using Cygwin to support common
environment for Windows and Unix builds).
PKCS #11 work has included working with customers and partners, and
participating in RSA PKCS workshops.
More recently (as well as continuing PKCS #11 maintenance) I worked on
introducing the
nForce
SSL offload product, and on the
keyAuthority key management system, and I am currently developing the CryptoNG interface.
Some of this work has been done alone, some as lead for a small team,
and some as part of a slightly larger team. API coding was done in C
(with odd bits of Tcl, Perl, Python, make and bash scripts for other
things).
I joined Setanta Software to work on Print.Flow, a work flow monitoring product
initially targeted at pre-press printing based on an object-relational active
database. The core of the database server was a virtual machine written in C
which provides machine-independent multi-threading for DASL, a stack-based
language a bit like Forth or Postscript (though we also demonstrated an
version running on top of an SQL database). Much of the DASL code was
compiled from PM2, a Modula-like object-oriented language. (Some
of the principles are similar to Java, but
Java didn't exist publically when we started. Python would be another
plausible choice if we were re-implementing the system today. Similarly the
Structured Assembly Description format we used would be XML these days).
The main database client was written in C with a GUI toolkit that ran on X
Windows, Microsoft Windows, and MacOS, and there were additional tools written
in Borland Delphi. There were also tools to export information as HTML pages,
and to interface with other systems, for example taking information from a
Sybase database using ODBC. I have worked on all these parts of the system, as
well as the source management system and development tracking system (which
used the same database). Work was in a small development team with no
management structure.
I was also at times webmaster for Setanta's web site
(some
fragments of which are in the Wayback
Machine, but Setanta no longer exists).
I joined Shape Data as part of a team working on an object-oriented interface
on top of relational databases (Oracle, Ingress, and RDB), written in C and
embedded and dynamic SQL, for a product that ended up as IMAN (Information
Manager) after a number of name changes, but is currently Teamcenter
Engineering. Work included writing a test framework. I then moved to the
N-able team, a project to explore architectures for a possible new product,
working in C++ with an object-oriented database (Versant). The areas examined
included reflexive data modelling, combining method dispatch with remote
procedure calls, and journalling/undo/update. This job also involved some
training of other team members. N-able produced some prototypes, but it was
decided to divert work to the existing product, Unigraphics (now
NX)
and I became part of the Assemblies team. New UG code was written in C, with
some work on existing Fortran. I also helped with the introduction of a new
RCS based source management system, and I learnt Lisp and did some X-windows
work for emacs customisation.
I attended training courses on SQL and Relational Database Design,
Object Oriented Design, Fagan Inspection, Technical Writing, Time
Management, and product related courses.
[Shape's exact name changed several times when EDS bought the division
of McDonnell Douglas that owned it. At the time I left it was "Shape
Data, a division of EDS-Scicon Ltd.", later part of "EDS Unigraphics",
and now part of "UGS".]
I worked as part of the Database group, both as a team member and on my own, on
the Document Manager and Engineering Drawing Analysis applications. Work
included specification, design, coding, and the writing of one product's User
Manual (originally done as the base specification, but they were short of
documenters at the time). Most work was done in BaCIS, a high-level in-house
language (an ancestor of
Smallworld Magik), with some C and Fortran, using MDB, a semi-relational
database. I also worked on the bug (SAR - System Action Request) tracking
system, which also used MDB.
I attended training courses on C programming and Object Oriented
Requirements Analysis.
[CIS was part of Prime Computer UK when I left, after Prime bought
Computervision who owned CIS. Prime failed as a minicomputer maker,
and Computervision were later taken over by Parametric Technology.]
1982 - 1983 MOD sponsored Industrial Experience,
Royal Aircraft Establishment, Farnborough.
9 month training course followed by a three month project looking at
possible improvements to a wind tunnel cooling system. Vacation work
included time in a drawing office, planning, producing NC tapes, and a
management project.
Education
MA, Engineering and Computer Science. (2.2 in final exams).
Perse School for Boys. 1975 - 1982
GCE 'A' levels in Mathematics (A1), Physics (A2),
Computer Science (A) & Chemistry (B).
GCE 'O' levels in 13 subjects (8As, 3Bs, 2Cs).
School prizes for Physics, Chemistry, and Service.
Other
Age 43, British, Married with two children.
Clean driving license. I can read French, but have an appalling accent.