Real Time Embedded
Deterministic;Â Always.
Leonardo, Airborne & Space Systems, Luton, Bedfordshire, UK Dec 2017 – Nov 2019
​
One of five developing the C++ Rhapsody UML based Apache AH-64E and Chinook CH47 helicopters DAS Controller variants, increasing their platform survivability over than provided by federated sensor and effector sub-systems. Personality modules for the Laser and Radar Warner Receivers, Modernised Radar Frequency Interferometer, Missile Warner, Counter Measure Dispensing System mapped CRUD reports into common Tracks then a prioritised Tactic to deploy was decided based on Threat Angle of Arrival, Platform height, bank angle, speed and the aircraft and dispenser notified. Mission data was recorded throughout to a Data Transfer Unit, messages configured by JSON files. A Secure Load facility transferred the VxWorks target onto the rig. The VS 2017 Windows 10 target was host tested by injecting events into a separate DASC adaption layer, forwarding them to the DASC core. Dimensions was used for version control. Waterfall process.
​
Ultra Electronics Command and Control Systems, Loudwater, Bucks, UK August - Sept 2015
MoD tech refresh to embedded submarine bezel-button based panel software using VxWorks Media Library to develop a C++ widget library replacement for legacy X-Motif code. AGILE process.
​
MBDA, Stevenage, Hertfordshire, UK January 2013 – October 2014
Lead architect/designer/C++ developer, in a team of four, of a missile simulation system for the MoD. This began with a C# GUI client and a procedural Ada algorithm legacy and ended with an enhanced C# client and a green-field OO C++ hard RT server, designed in Rhapsody under RUP. The team were one for the C# GUI, one for the tracking/algorithm design, one for hardware, and myself who designed and developed the architecture and much of the application code of the server in C++98/11 under VS 2010 for RTOS Windows 7 RTX embedded. This included a Service Orientated Architecture (SOA) (like DDS), with message passing for inter-thread communication, a shared memory message database to connect with a C-binding to the in-house Atena package of hardware drivers, all over an OS platform layer (both RTX C-runtime and Boost) and configured using a C# inspired C++ dependency injection (DI) layer, using Google Hypodermic. Atena provided a C API and drivers for the Ethernet connection to the C# GUI and digital I/O and 1553 bus, so embedded RTOS issues were understood more than driver development. The SOA, VC++11 (lamba functions), DI, templates and X-platform OS interface allowed focus on the application. Experience was gained in C++11/architecture design, hard RT embedded systems development. Some C#.
​
Thales Aerospace Division, Crawley, West Sussex, UK February 2007 – July 2007
​
Worked on the Radar Message Level Simulator (MLRS3) project for the Viper Radar. Added an Ethernet interface to allow XML scripts to run through the radar simulator remotely by the addition of a UDP network connection to a Flight Trials MMI which would be run from within an aircraft. Again this was written in C++ but used Borland Developer Studio (C++ Builder) 2006.
Testing: Wrote a simple static code analyzer in C++ for the framework code to provide basic complexity measures as part of testing metrics. This also acted as an introduction to the code base.
​