Do you have a passion for technology? Do you want to make a difference, delivering software used by some of the biggest companies in the world? Do you love working with others in a dynamic agile environment?
Companies throughout the world are exposed to risk; understanding and managing that risk is key to their continued success. As part of this opportunity you'll be delivering solutions that help our customers protect their brand and make smarter decisions.
We are looking for enthusiastic, passionate software engineers to join our team as we strive to deliver excellence to our customers. You're a self-starter who will be part of an empowered agile team working on our portfolio of risk products.
Whilst your background will be in software development, your curiosity, desire to learn and enthusiasm for technology means you can do what it takes to get the job done. Quality is non-negotiable, so a good focus on code quality, unit testing and enabling automated testing is important.
Main Responsibilities / Accountabilities:
You will build and maintain efficient, reusable, reliable and secure code based on User Stories and software designs
Working within a multi-functional agile team, you'll develop enterprise software, adhering to company standards and established software methodology.
Demonstrating a consistent focus on quality, you'll ensure that your team delivers reliable, robust software through the creation and execution of automated tests in conjunction with the team's quality engineers.
To help the teams develop and learn, you will review work of peers and more junior developers, providing advice and guidance to benefit the team.
Through agile retrospectives and reviews, you will inspect and adapt, finding innovative ways to make your team work more effectively.
Through participation in refinement and planning sessions, you will work with other team members to analyse development requirements, provide design options and complexity estimates, and agree how to deliver the requirements.
Actively participating in Scrum meetings, you will give timely status updates on areas for which you are responsible.
Provide technical support to operations or other development teams
Create, review, and maintain all required technical documentation to ensure supportability and reuse
Assist with improvements to prevent problems, including problem resolution workflow.
Actively participate in team and status meetings, providing timely status updates for areas of individual responsibilities within projects to supervisor
Essential Skills/Experience Required:
Experienced software engineer with excellent knowledge of Python, Typescript and AWS
Familiarity with other languages, for example Java, and the ability to put that familiarity into practice.
Solid understanding of object-oriented programming.
Familiar with various design patterns.
Experience of unit testing.
Knowledge of databases and SQL.
Understanding of security implications and secure coding
Good communication skills, both verbal and written
Skill for writing clean, readable code and reusable components
Experienced in or a strong desire to work in a formal agile software development lifecycle.
Understanding of HTML and XML.
Proficient using source code management tools such as Git or SVN.
Familiar with continuous build and integration
Desired Skills/Experience Required:
Experience with Jenkins
Experience with RESTful interfaces
Knowledge of/Experience with service orientated architectures
Experience with Test Driven Development and / or Behaviour Driven Development
A good relevant degree is desirable, but experience and the right approach to work are just as important.