Alan Rory Mcleod Braggins, Lead Software Engineer

Languages: C, C#, C++, Python, Fortran, Delphi, SQL, assorted in-house languages.
Systems used: Various varieties of Unix (including Linux), Windows, VMS.


2012 - present: Riverbed Technology.

Working on the Stingray Application Delivery Controller.

1997 - 2012: nCipher Corporation Ltd

nCipher were acquired by Thales e-Security in 2008.

Most recently working as lead of a small project sub-team using an Informix database, but with significant design input to other project areas.

Past work has included a PKCS #11 interface for nCipher HSMs, some work on an MS-CAPI provider (which became the first commercial non-Microsoft CAPI provider), and more recently the nCipher CryptoAPI NextGen provider, which was developed in time for the launch of Windows Server 2008.

PKCS #11 work included working with customers and partners, and participating in RSA PKCS workshops.

I also worked on introducing the nForce Ultra SSL offload product (since obsoleted, but it had an interesting architecture using the miniHSM to integrate key management with the board using it, and on the keyAuthority key management system (which is completely unrelated to the current Thales e-Security keyAuthority product name), including some Python GUI work.

I also worked on the build system, using Cygwin to support a common environment for Windows and Unix builds. (That has since largely been replaced by a scons based system, that has a dedicated team working on it.)

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 more recent work in C++ and C# (along with Python, and odd bits of Tcl, Perl, make and bash scripts for other things).

1993 - 1997: Setanta Software

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 were 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).

1989 - 1993 Shape Data

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 (ObjectStore).

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", then "UGS", and now part of Siemens.]

1986 - 1989 Cambridge Interactive Systems.

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 the EDA 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 (Medusa DataBase), 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.


Clare College, Cambridge. 1983 - 1987

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.


Age 47, British, Married with two children.

Clean driving license. I can read French, but have an appalling accent.