Our Software Engineers work across the full development lifecycle to enhance and maintain the company’s commercial software products. This is a hands–on role delivering new commercial software features on time, within an agile software development process that brings in requirements and knowledge from research and development teams, geoscientists, product and user stakeholders.
Translation of these requirements and materials into high quality, well planned and documented commercial software features is the primary purpose of the role. You will also be expected to share knowledge and expertise across the technology group and support a continuous improvement process.
As part of our ongoing evolution, we are embarking on a major cloud transformation project which will redefine how we deliver our software. Our software engineers will be pivotal in achieving these strategic goals.
Delivery of commercial quality software
Actively participate in resolution of complex technical problems
Works to continually improve the software delivery process
Ensures estimates and plans are technically accurate and up to date
Ensures design and implementation adhere to standards
Maintains appropriate design and coding standards
Shares knowledge of the code-base and encourage “shared code ownership”
Identifies new technologies which will improve our software
Takes ownership of code quality and drives continuous improvement.
Qualifications & Experience
Appropriate qualifications and / or experience in a Software Engineering discipline
5+ years’ experience of software development within a commercial environment
2+ years’ experience in Agile software methods and practices, specifically Scrum
Familiarity with modern architecture methods such as TOGAF
Expert level knowledge of C++, C#
Knowledge of Ruby, NoSQL, Python or TensorFlow machine learning, messaging or distributed computing highly desirable
Experience of using design patterns and refactoring techniques
Relevant certification in Testing & Quality Assurance, or equivalent experience
Experience in a commercial R&D or scientific software development environment
Knowledge and experience of continuous delivery pipelines such as GitLab
Experience of end to end test automation
Familiarity with a test first development methodology such as TDD or BDD
Experience in public cloud architectures including AWS and GCP
Implementation of containerised software using Docker and Kubernetes
Data led API design and implementation using OpenAPI.
Reporting and Relationships
The role reports to a Principal Software Engineer and liaises closely with the Technical Architect, Agile Project Manager and key stakeholders.
Presenting data in an intuitive manner, our entire approach works in tandem with interpreters’ thought processes, specialising in transferring user knowledge into the data to determine the most efficient and safe operations.