Job Description
Remote is seeking a Software Engineer (Developer) to join the team at ASD, supporting the delivery of effective and secure capability solutions. Working under broad direction, this role will interpret specifications and technical designs to build, maintain and modify software applications, adapt data for software use, develop and execute testing, and produce and maintain technical documentation.
This role requires strong capability across software development, software design, systems design, and systems integration. DIG is seeking someone with experience in Java, Python and C++ development, and development and deployment within Linux/UNIX environments, as well as data manipulation. Familiarity with technologies and platforms including SQL, Cloudera, Apache Airflow, Splunk, Azure, OpenSearch/Elastic and Atlassian will be highly regarded, along with experience in cyber security, cloud administration, Linux/Windows administration, and UX/UI design. ( LH-05922)
Role Description
Job Duties and Responsibilities
- Interpret specifications and technical designs to develop, maintain and enhance software applications and capability solutions.
- Design, build, test and deploy software using Java, Python and C++ in Linux/UNIX environments.
- Manipulate, transform and convert data for use across software applications, integrated systems and operational workflows.
- Contribute to software and systems design activities, including design reviews, trade-off analysis and implementation planning.
- Support systems integration, build, automation and continuous improvement activities across on-premises and cloud-based environments.
- Work with technologies and platforms such as SQL, Cloudera, Apache Airflow, Splunk, Azure, OpenSearch/Elastic and Atlassian to support development and operational outcomes.
- Apply sound cyber security practices and support secure software development, deployment and administration activities.
- Provide technical support across Linux and Windows environments, including software deployment and platform administration where required.
- Contribute to cloud administration and related engineering activities to support scalable and reliable capability outcomes.
- Produce and maintain technical documentation, execute testing, and provide specialist technical advice to stakeholders and team members.
- Contribute to user-focused solution development, including UX/UI considerations where required.
Essential criteria
- Programming/software development level 5: Takes technical responsibility across all stages and iterations of software development. Plans and drives software construction activities. Adopts and adapts appropriate software development methods, tools and techniques. Measures and monitors applications of project/team standards for software construction, including software security. Contributes to the development of organisational policies, standards, and guidelines for software development.
- Software design level 4: Designs complex software applications, components and modules. Uses appropriate modelling techniques following agreed software design standards, guidelines, patterns and methodology. Creates and communicates multiple design views to balance stakeholders' concerns and to satisfy functional and non-functional requirements. Identifies, evaluates and recommends alternative design options and trade-offs. Models, simulates or prototypes the behaviour of proposed software to enable approval by stakeholders, and effective construction of the software. Verifies software design by constructing and applying appropriate methods. Reviews, verifies and improves own designs against specifications. Leads reviews of others designs.
- Specialist advice level 4: Provides detailed and specific advice regarding the application of their specialism to the organisation's planning and operations. Actively maintains knowledge in one or more identifiable specialisms. Recognises and identifies the boundaries of their own specialist knowledge. Where appropriate, collaborates with other specialists to ensure advice given is appropriate to the organisation's needs.
- Systems design level 5: Designs large or complex systems and undertakes impact analysis on major design options and trade-offs. Ensures that the system design balances functional and non-functional requirements. Reviews systems designs and ensures that appropriate methods, tools and techniques are applied effectively. Makes recommendations and assesses and manages associated risks. Adopts and adapts system design methods, tools and techniques. Contributes to development of system design policies, standards and selection of architecture components.
- Systems integration and build level 5: Plans and drives activities to develop organisational systems integration and build capabilities including automation and continuous integration. Identifies, evaluates and manages the adoption of tools, techniques and processes to create a robust integration framework. Provides authoritative advice and guidance on any aspect of systems integration. Leads integration work in line with the agreed system and service design. Assesses risks and takes preventative action. Measures and monitors applications of standards. Contributes to the development of organisational policies, standards, and guidelines for systems integration.