William Dickson   BSc MPhil
Home> About us> Bio> Will Dickson - CV
Experience
Autumn 1998-present: CTO, Caversham Computer Services Ltd.

Technical design and implementation of the Checkpoint ® application integration framework, and the suites of applications and tools that facilitate and utilise it. This product provides extensive security features for the management of data and applications, both on a single platform and across the network. Working mostly in Java, this has involved, inter alia:

  • Implementing the Blowfish symmetric encryption algorithm with optional, hot-pluggable native acceleration.
  • Building the BeeTree encrypted object persistence engine.
  • Extending BeeTree to bundle objects into "sets" [analogous to tables in an RDBMS, but polymorphic].
  • Building CDBM, a generic front end to manipulate objects stored in BeeTree object stores, using introspection to allow custom UI and validation for each class of object.
  • Building Checkpoint Commander, a Swing-based utility which allows files to be managed on the filesystem, inside ZIP-format archives and inside BeeTree object stores (where they may be encrypted). This also provides secure file removal (wiping).
  • Building the Checkpoint Daemon and Checkpoint Command Centre: an access-control system and a browser-fronted user / administrative front-end to it.
  • Building JStart, a generic bootstrap loader for Java applications. Win32 version written in C, Linux version in bash.
  • Building a generic deployment / upgrade install tool.
  • Building Chameleon, a web-based issue / content tracking system somewhat similar to, but considerably more general than, the Mozilla project's "bugzilla" system or Sun's public-facing tracking system for bugs in Java itself.
  • Building Chainmail, an SMTP / POP3 MTA with integral spam filtering, designed to be easy to use within small businesses.
  • Building Pasiphae, our general purpose web applications framework. Uses custom handlers in an embedded configuration of the Jetty HTTP server.
  • Migrating the entire architecture to a new, integrated identity management framework. The framework includes X.509 certificate lifecycle management, as well as topicmap-based authorisation and built-in TLS support.
  • Building COBRA, our X.509 Certificate Authority and certificate issuing tool.
  • Building DUMPER, our automated backup tool.
  • Migrating the entire codebase to Java 6.
  • Building Hydra, our HTTP redirector service.

I am currently responsible for the continued development of the Checkpoint® architecture in order to implement the Checkpoint Collaborative Network. This will be the company's flagship product and involves a major extension of the core technologies mentioned above.

UML design and diagramming using Poseidon and MagicDraw. Development in Java using Eclipse. Development in C/C++ using Visual C++ 6 and Gnu Compiler Collection (GCC).

Summer 1998: Contract work, Madison-Hill.
This contract involved designing and implementing an upgrade propagation tool, and a message-based data replication library for Win32 TCP/IP networking. Both products were written in Visual C++.
1995-1998: Post-graduate work, University of Southampton.

Inter alia, this involved designing and implementing two data-analysis packages for Muon Spin Spectroscopy, written in a mixture of C and FORTRAN on Solaris Workstations and rolled out on DEC Alpha-based workstations under OpenVMS. (C was used for new code, FORTRAN for interfacing to legacy libraries).

During this period, I taught myself Java and designed and wrote early versions of Checkpoint Commander and the libraries that support it.

Summer 1995:
Designed and implemented a suite of experimental-control / data acquisition systems for the Physics Department, Southampton University. These were written in Visual Basic 3.0, over a period of approximately two months. Received a second contract to expand the suite during Easter 1996.
1991-1992: Industrial experience, Harwell Laboratory.
This involved designing and implementing process-control software and electronics for a pair of prototype electrochemical fluid-treatment systems using QuickBasic.
Education
1995-1998: Postgraduate Physics, University of Southampton (MPhil 1999)
This work was concerned with the analysis of Muon Spin Spectroscopy data from instruments at the Rutherford-Appleton Laboratory. As part of this work, I built a suite of data-analysis programs in C, as described in the "experience" section above.
1992-1995: BSc. Physics, University of Southampton. (2:1 honours)
This course covered a wide range of topics in physics, the related mathematics, and some basic computing and electronics units. For the third-year project, I designed and implemented data-acquisition, analysis and control software for a pair of laboratory "rigs". These measured the variation with temperature of respectively the heat capacity and thermopower of a sample under cryogenic conditions. Programming in C++ using Borland C++ 3.1.
1989-1991: A-Level, Leighton Park School, Reading.
Mathematics (A), Physics (A), Electronics (A), Latin (C).
1989: GCSE, Leighton Park School, Reading.
O-level Latin (A), 9 GCSE (A), AO Mathematics (B).
Skills
Java
  • Java 1.4, Java 5, Java 6
  • J2SE, knowledge of J2EE
  • Advanced I/O (Implemented custom object store and secure data wiping)
  • GUI building with AWT and Swing
  • Java development tools / IDE's (JBuilder 3, Forte, Eclipse)
  • Deployment / integration on Win32 and Linux (SuSE 8.x, KUbuntu)
  • JAAS
  • JSSE
  • JCA / JCE
  • JAXP
  • Java NIO
  • Java Comm API (serial / parallel)
  • JavaSound
  • Knowledge of JNDI
  • Sockets-level TCP/IP
  • Reflection and custom classloaders
  • Servlets (API version 2.2)
  • Custom lightweight HTTP servers / proxies
  • HTTP / servlet servers (Jetty, Apache Tomcat 3.1)
  • Extending web browsers (Ice-Browser) with custom URL protocols
  • Some knowledge of application servers
  • Java 5 language features: generics, typesafe enums, annotations et al.
UML and diagramming tools
  • UML 1.2
  • MagicDraw
  • VP-UML
  • Poseidon
HTML, XHTML, XML
  • XSLT
  • Development of XML languages
  • Use of XML parsers (SAX, DOM)
  • XHTML 1.1, HTML4.0, CSS
Protocols
  • HTTP
  • SMTP
  • POP3
  • TLS
  • XML-RPC
  • Hessian
Cryptography
  • Symmetric (esp. AES, SHAx)
  • Asymmetric (esp. RSA)
  • X.509 (ASN.1)
  • Some experience of SPKI
Operating Systems
  • Linux
  • Windows 2000 / XP
  • Windows9x
  • Solaris (SPARC)
  • OpenVMS
Other programming languages and technologies
  • ASN.1
  • Bash
  • C / C++
  • Visual Basic 3
  • Fortran-77
  • Topicmapping
Hardware
  • Extensive experience of building and maintaining PC's
  • Electronics and custom interfacing
  • Data acquisition and analysis
  • Process control
Authored in CXD using Checkpoint Information Engineering Workbench   Copyright © Caversham Computer Services Ltd.