DM-26169
DSTG requires DevOps services professional to help with the development of unified processes to better manage the software development life cycle and provide ongoing quality assurance and controls to ensure that the software produced is fit for purpose.
You will be responsible for:
- Developing end-to-end software development to deployment processes (including version control workflow, issue management workflow, dependency management, continuous integration, continuous deployment, continuous documentation),
- Developing processes for users/consumers to engage with libraries developed and deployed using the above processes to support configuration management,
- Evolving the existing toolchain to facilitate the above consumption, development and deployment processes (including build system recipes, package recipes, testing frameworks, CI/CD infrastructure/integrations/recipes)
- Engaging stakeholders to elicit requirements, impacts and provide education with respect to the benefits of the proposed process changes,
- Developing a plan to transition from the current set of processes and tools to the agreed upon solution,
- Developing solutions to facilitate the management of build and simulation infrastructure,
- Develop comprehensive documentation of the processes and their usage
You will be required to be on site as required to liaise with the subject matter experts and other incidental tasks that will be required.
Deliverables
The Service Provider shall undertake the work in the following deliverables. These deliverables are not in priority order. The relative priority and scope of all deliverables will be subject to change subject to evolving requirements, however any change to priority or scope will be communicated through participation in regular meetings.
Deliverable 0: Ongoing Maintenance and Evolution of Existing Continuous Integration Infrastructure and Tooling
Working with the Software Development Support team, work to ensure the good operation of our C++ continuous integration pipeline, such that it is:
- Free from bugs
- Maintainable
- Well documented
- Efficient
- Performant
- Secure
The tasks that fall within this deliverable are many and varied, however one example is the addition of functionality to trigger a build of our entire dependency tree.
Deliverable 1: Monthly Progress Reports
Contribute to written reports every month, including:
- Progress against requirements
- Resource metrics
- Requirements refinement
- Identified risks and issues
- Upcoming activities and priorities
Deliverable 2: Requirements to Improve Analyst and Developer Workflows
Conduct analysis of both analyst and developer workflows to identify areas for improvements to their process through automation and generate a set of requirements to realise those improvements. This will require engagement with analysts to identify:
- The current workflow
- The bottlenecks in the current workflow
- Identification of tasks within the workflow that can be automated
- Analysis on the impact of automating those tasks
- Identification of the requirements to achieve automation
Deliverable 3: Develop Processes and Tools to Support Build and Simulation Infrastructure Management
To address the increasing scale of our modelling and simulation activities, we need to be able to increase the amount of virtual infrastructure that can be effectively managed. This deliverable requires:
- Identification of appropriate infrastructure-as-code and configuration-as-code tooling to minimise the management overhead of large numbers of virtual machines and containers
- Development of processes to manage software defined infrastructure
- Development of tools to facilitate the management of software defined infrastructure
Deliverable 4: Add Vulnerability Analysis to Continuous Integration Pipeline
Addition of vulnerability analysis to our continuous integration pipelines to provide security insights into our dependency tree to better understand the risk being adopted at any given time and inform where development effort should be prioritised to ensure that we are producing secure binaries. This will include:
- Assessment of the insights vulnerability analysis services (such as SonarQube or JFrog X-Ray) could provide
- Assessment of how these services could be incorporated into the extant continuous integration pipeline
- Development of a remediation process for any identified vulnerabilities
- Building an integration of these services into the extant continuous integration pipeline
- Extracting relevant insights from these services or utilities to present them to the developer in a meaningful way
Deliverable 5: Add Performance Analysis to Continuous Integration Pipeline
Addition of performance analysis to our continuous integration pipelines to provide insight into the impact our engineering practices have on software execution performance. This may include benchmarking, static analysis and/or profiling, and may involve:
- Assessment of the insights performance analysis services and utilities could provide
- Assessment of how these services of utilities could be incorporated into the extant continuous integration pipeline
- Building an integration of these services into the extant continuous integration pipeline
- Extracting relevant insights from these services or utilities to present them to the developer in a meaningful way
Deliverable 6: Develop Documentation for CMake/Conan Usage with Opal Projects
Develop documentation targeting both developers and analysts describing the CMake and Conan workflows common to those using Opal (our internal suite of tools) projects.
Deliverable 7: Develop an Experiment Tracking Dashboard
Develop an experiment tracking dashboard that provides a mechanism to easily gain insight into:
- The models used to perform an experiment, and their versions
- The input data for the simulation, and the associated version
- The outputs associated with an experiment (reports, charting, etc)
- Analytical charting from the results of each model within the experiment
- Insight into changes in key metrics over the history of executing the same experiment with different models
- Model verification and validation reporting and assessment
Deliverable 8: Develop a Continuous Integration Result Dashboard
With the increasing scope and scale of our continuous integration pipeline, a requirement is emerging to improve the transparency of the pipeline, and the insights that a developer can draw from the tests that have been executed. This task is to develop a dashboard to provide concise and timely feedback on the results of an execution of the continuous integration pipeline.
Deliverable 9: Integrate Simulation Tooling into Continuous Integration Pipeline
Integrate extant simulation tooling into our continuous integration pipeline to support a range of activities, including:
- Model Verification
- Model Validation
- Analytic Regression Testing
- Simulation as a service
This deliverable will also involve development of tooling to support configuring the execution of the simulation, and extraction of results to support execution success, failure, and trend analysis.
You must have Baseline clearance with eligibility to get NV1 Clearance.
- Have sound interpersonal skills, including the ability to work productively and collaboratively as a member of a team;
- Have the ability to develop strong working relationships across multiple business areas and recommend or co-ordinate efforts to deliver fit-for-purpose and timely outcomes;
- Contribute positively to the outcomes of highly functional teams;
- Have the ability to communicate clearly and effectively with both colleagues and clients at multiple organisational levels;
- Have well-developed internal and external customer relationship management skills;
- Have demonstrated effective written, verbal communication, effective listening and problem-solving skills;
- Be able to respond positively to challenging work and deadlines;
- Have developed proficiency in time management, including the ability to prioritise and manage multiple concurrent tasks;
- Be proficient in troubleshooting, investigation and reverse engineering of complex and undocumented systems;
Highly Desirable Criteria:
- 3+ years of C++ development experience with knowledge of application build processes including linking, static libraries and dynamic libraries;
- Demonstrated experience with C++ build systems (CMake highly desirable)
- Demonstrated experience with C++ package management (Conan highly desirable)
- Demonstrated experience building pipeline automation (Bamboo, Travis CI, Circle CI, Jenkins, GitLab CI, Artifactory, etc.), particularly focusing on CI/CD;
- Demonstrated experience with git and git workflows;
- Demonstrated experience with containerisation technologies (Docker, Podman etc), including building container images;
- Demonstrated experience with container orchestration technologies (Kubernetes, OpenShift, etc), including building container clusters;
- Demonstrated experience with frontend web technologies (JavaScript, React desirable)
- Demonstrated experience designing REST API’s
- Experience with both Windows and Linux development environments;
- Modelling and Simulation software experience; and
- Knowledge of python, bash or other scripting language
Offer ended on 27.10.2024