Join us as a Software Engineer
- This is an excellent opportunity to produce resilient and long-lived software that meets current non-functional requirements
- You’ll be designing, producing, testing and implementing working code, and taking responsibility for the full life cycle of the system
- You’ll be delivering value to your team by creating and curating working software safely and rapidly, while honing your technical talents in this critical role
What you'll do
As a Software Engineer, you’ll be developing knowledge of aspects of the associated platform across the disciplines of business, applications, data and infrastructure. We’ll look to you to liaise with principal engineers, architects in the domain and other key stakeholders to understand how the platform works and how it supports business objectives.
You’ll also be:
- Improving performance through evaluating and analysing metrics
- Making an active contribution to design and architectural choices, and to performance optimisations of the system
- Applying Agile methods to the development of software
- Designing and developing software with a focus on the automation of build, test and deployment activities, using executable patterns
- Delivering intentional architecture and formulating emergent design
The skills you'll need
As an experienced Software Engineer, you’ll be joining Fire application development team and developing knowledge of aspects of the associated platform across the disciplines of business, applications, data and infrastructure. We’ll look to you to liaise with principal engineers, architects in the domain, quantitative analysts and other key stakeholders to understand how the platform works and how it supports business objectives. You’ll need a background in software engineering, software design or database design along with coding experience in multiple programming languages. We’ll look to you to have experience of implementing programming best practice, especially around scalability, automation, virtualisation, optimisation, availability and performance, and a track record of solving highly complex analytical and numerical problems.
You’ll be a very capable communicator, with the ability to communicate complex technical concepts clearly to your peers and management level colleagues, with good collaboration and stakeholder management skills.
Additionally, you’ll demonstrate:
- Experience of working with code repositories, bug tracking tools and wikis (Java 8-17, Groovy, Spring Boot, Spock, Git, JIRA, Confluence)
- Experience of DevOps and Agile methodologies and associated toolsets (miroservices architecture patterns, Docker, Kubernetes, Infrastructure-as-Code, Terraform)
- A background in test driven development alongside the use of automated test frameworks, mocking or stubbing and unit testing tools
- Experience of designing and implementing API's
- Knowledge of relational, in-memory, distributed and NoSQL databases
- Experience developing applications running on cloud platform (e.g. GCP or AWS).