An Information Fusion Technical Design and Development consultant is required to be the primary developer to work and lead on a project that will work closely with users through a series of rounds of experimentation to explore how possible features of an information fusion capability can be exploited into new or different operating models for specific specialist operations scenarios.
The main capabilities required for the consultant are described below. As part of the project initiation activity, the preparatory work has created an Exploratory Prototype using technology components that are believed to be representative of those best suited to build the prototyping platform. You will be expected to critique the choices made in relation to the project context and reason about alternatives.
The front end will require User eXperience (UX) – appearance and interaction design; matching user information needs to achievable presentation. A Modern web interface design – responsive, possibly single page and a Georeferenced / map based information presentation.
It will be built using HTML5/JS/CCS3 using modern frameworks and libraries. The prototype has used Vue.js, Leaflet and Bootstrap. The language environment is ES6 (Babel), npm and webpack.
The backend Serves web applications including static pages, single page web apps, and websocket based push capabilities. The prototype has used the python Tornado server.
Serving geospatial data, in particular map tiles. The project will either make use of existing mapping products if network connectivity, API compatibility and other factors permit, or else provide a local server using open source base data.
Geospatial processing. The proof of principle has used python tools and libraries to access industry-standard APIs, and PostGIS for storage and geospatial queries.
Ingestion of real time streams, historic data and reference data. Sources are likely to be diverse and may need to be accessed through a combination of:
- Web service APIs
- RESTful APIs
- Web scraping
- File loading (XML, CSV, …)
During the early stages of the project, to facilitate exploration with users, and throughout for testing purposes, there will be a need to simulate some of the data sources mentioned above, including the “real time” streams. It will be necessary to set up realistic and repeatable scenarios that provide the same connection models as the real sources. The Prototype has used the python SimPy framework along with python geo-processing tools to achieve this.
The prototype will use a specific configuration of Virtual Machines and their interconnecting virtual and physical networks to provide a secure compartment within the infrastructure that enforces the required controls on the data being handled.
The abstract model has been employed in similar cases but needs to be instantiated in a configuration matched to the specific needs of this project, and such configurations have to be able to recreate programmatically, i.e. using a devops model. Skills are therefore required in areas such as:
- Virtual Machine creation and configuration (VMWare ESXi 6)
- IP network configuration
- Network link encryption
- Provisioning, deployment and monitoring automation (e.g. Vagrant, Ansible,)
- Unix based Operating Environments including security & systems administration
We expect that you will have a mastery of the technologies employed – the project does not have the time or depth of resource to allow significant “on the job” learning.
- Agile development.
- Rapid prototyping including effective two way communication with non-technical users.
- Well-developed design documentation skills
- Working in and contributing fully to a small team of innovative, enthusiastic, specialists.
Due to the nature of this client and the system being developed, you will need to have a current Security clearance to at least SC Level.