Resume - Adrian Hilton

Resumé

Adrian is an experienced chartered engineer with specialist knowledge in distributed scheduling systems, investment banking software infrastructure, safety-critical systems and programmable logic. He has worked on a wide variety of projects including development of business-critical investment banking software, development, analysis and verification of military aviation systems, development of a commercial static analysis tool, validation of programmable logic in high-integrity systems and correctness proofs of formally developed code. He also has experience of developing embedded software and applets for mobile communications devices.

Experience

Google (October 2011 - present)
Launch Coordination Engineer
Details available on request
Goldman Sachs (May 2005 - September 2011)
Vice president (2007 - present):
Technical lead for development and deployment of an ultra-high reliability distributed scheduling system in Python using Django, Postgres database, Apache, Kerberos on the server side with Windows and Unix clients and an HTML+JavaScript interface. Responsibilities included:
  • requirements and design lead, development of spec, build, testing and traceability system
  • development of the core scheduling code
  • ensuring bug-for-bug and feature-for-feature compatibility with system it replaced
  • developing and documenting operator and developer procedures for the system
  • responsibility for code quality and review, and system performance and reliability
  • prioritisation and implementation of new features and bugfixes for users
Associate (2005 - 2007):
Working in a team managing the builds, testing and distribution of trading and pricing software on Unix and Windows hosts. Tasks included:
  • development and bugfixing of existing and new infrastructure for financial application development and distribution;
  • support for developers' use of the infrastructure including diagnosing the cause of problems and either solving them or rerouting to more appropriate teams;
  • locating build breakages in project builds and assigning their fixes to appropriate developers;
  • managing the build and release cycle of the trading and pricing software.
Praxis High Integrity Systems Ltd. (July 2002 - April 2005)
Senior software engineer:
  • providing on-site consultancy to a leading avionics company for the development of a safety-critical helicopter communications system. The development incorporated several PLDs and was required to be developed to RTCA DO-254 Level A integrity. Adrian reviewed the system, produced a Level A safety argument and successfully brought it through safety authority review.
  • writing a guidance report for the UK Ministry of Defence Advanced Avionics Architecture program, focusing on achieving safety certification and re-certification of software executing on Programmable Logic Devices in military systems.
  • providing on-site consultancy for the development of a secure communications filter written in Ada and running on Trusted Solaris. He rewrote the program in SPARK Ada 95 with full proof of exception freedom and produced documentation supporting the sub-system certification at Common Criteria EAL-4.
  • team leader for the V&V of a maritime helicopter tactical avionics subsystem written in Ada 83, developed and tested under Rational Apex and TestMate. He was responsible for directing the testing effort of the project team, tracking team reviewing progress, developing and rolling out an Ada- and Make-based functional test harness for the system, writing Perl to support review activities and liasing with the client to resolve review anomalies.
  • working on the SPARK Examiner development team, reviewing documentation and testing the Examiner in preparation for the John Barnes book "High Integrity Software: The SPARK Approach to Safety and Security". He was responsible for reviewing the text and code in the draft chapters, porting the Simplifier tool to Linux, updating the Examiner release documentation, and managing the CD-ROM Makefile for the Windows and Linux platforms.
Teleca UK Ltd. (April 2000 - June 2002)
Project manager / senior software engineer:
  • team leading development of the user interface part of a Java 2 MicroEdition interpreter, CLDC 1.0 for Mobile Information Device Profile 1.0. This was a mixed team of Teleca and client staff. Adrian was responsible for managing change requests, fault tracking, project planning, team training and developing and enforcing team software development practice. In an engineering role he wrote and maintained the MIDlet lifecycle manager application. Software was written in C and the client's proprietary graphical design language, running on a proprietary OS in a family of mobile devices. Related work included writing a range of J2ME test and demonstration MIDlets, bug-fixing other parts of the J2ME implementation and writing a Perl static analysis tool for the graphical design language.
  • team leading the re-design of a calendar application for a family of mobile devices. This was a team of Teleca staff working on client site. Adrian was responsible for the application lifecycle from functional requirements through to system testing. He also worked with the UI designer for a consistent application interface and liaised with client programs to arrange delivery and handover dates. In an engineering role he wrote the server part of the application to manage note handling functions. He also wrote a Perl test harness to regression-test the server software. The software was written in C, running on a proprietary OS in a family of mobile devices.
Praxis Critical Systems Ltd. (July 1996 - March 2000)
Software engineer:
  • verifying safety properties of the object code of a critical avionics program compiled from Ada 83, using a novel approach including the use of Perl code to simulate partial execution of the PowerPC code.
  • working on a client site in North America on development of a Stores Management System (SMS) for a military aircraft modernisation program. His chief responsibility was providing consulting on the use of SPARK Ada and the SPARK Examiner for design and implementation. He also took on design, development, integration and system testing of two core modules of the SMS.
  • redesigning and implementing a test suite for the SPARK Examiner product. The test suite used Perl and RCS, ran on all the Examiner's platforms (Solaris, SunOS, Windows NT, VMS, and later Linux) and allowed easy regression testing of new versions of the Examiner at high levels of product assurance.

Education and Qualifications

2006
Securities and Investment Institute
Certificate in Securities and Financial Derivatives
1998 - 2004 (part-time)
Open University, Department of Computer Science
Ph.D, title "High Integrity Hardware-Software Codesign"
March 2004: viva pass, Prof. S. Stepney, Dr. J. Fernandez-Ramil as examiners
1991 - 1996
Oxford University, St. Hugh's College
1991-1994 BA Mathematics and Computation, Class 1 (Hons)
1994-1996 MSc Computation by research (unsubmitted, PhD based on this)

Professional Affiliations

  • 2003: Chartered Engineer
  • 2002: Member of the Institution of Engineering and Technology (was the IEE)

Machines and Operating Systems

Desktop PC
MS-DOS and Windows 3.11 / 95 / ME / NT / 2000 / XP,
Linux (Red Hat, SuSE), OS X Darwin (10.3+)
Workstation Unix
Solaris (5.6, 5.8), SunOS 4, HP/UX, Digital UNIX
Other
Digital VMS

Programming Languages

  • Java (J2SE, J2ME)
  • Python 2.x (including Twisted, Django frameworks)
  • Perl (including extensive CGI programming)
  • C, C++ (gcc 3, SunStudio 11)
  • Ada (83 and 95), SPARK Ada
  • VHDL
  • HTML 4.01, XHTML 1.0, CSS Levels 1 and 2
  • XML

Tools

  • make and imake
  • CVS, RCS and Continuus CMS
  • TeX and LaTeX
  • Rational Apex, Purify

Standards

  • UK Defence Standards 00-54, 00-55 and 00-56
  • Common Criteria
  • RTCA DO-178B / EUROCAE ED-12B
  • RTCA DO-254 / EUROCAE ED-80

Foreign Languages

  • German (competent)
  • French, Italian, Tagalog and Romanian (working)

Academic Activities

  • Member of the B program committee for ZB 2005, April 2005
  • Representative of Praxis on the EPSRC-funded UK industrial / academic research network on methods for refinement (RefineNet), 2003 to 2005
  • Member of the program committee for the Workshop on Software Engineering for High Assurance Systems at the International Conference on Software Engineering, Oregon, May 2003

Selected Published Papers

  • A J Hilton and J G Hall, "High-Integrity Interfacing to Programmable Logic with Ada", Proceedings of the 9th International Conference on Reliable Software Technologies (Ada Europe 2004), June 2004
  • A J Hilton and J G Hall, "Mandated Requirements for Hardware / Software Combination in Safety-Critical Systems", Proceedings of Requirements for High-Assurance Systems (RHAS 2002), September 2002
  • A Hilton and J G Hall, "Refining Specifications to Programmable Logic", Proceedings of the Refinement workshop at Formal Methods Europe (REFINE 2002), July 2002

A full list of my publications is on here.