Join us as a Principal Engineer
- This is an exciting and challenging opportunity to work in in a collaborative, agile and forward thinking team environment
- With your software development background, you’ll be delivering software components to enable the delivery of platforms, applications and services for the bank
- As well as developing your technical talents, you'll have the opportunity to build project and leadership skills which will open up a range of exciting career options
What you'll do
As a Principal Engineer, you’ll be driving development software and tools to accomplish project and departmental objectives by converting functional and non-functional requirements into suitable designs. You’ll play a leading role in planning, developing and deploying high performance robust and resilient systems for the bank, and will develop your leadership skills as you manage the technical delivery of one or more software engineering teams.
You’ll also gain a distinguished leadership status in the software engineering community as you lead the wider participation in internal and industry wide events, conferences and other activities.
You’ll also be:
- Designing and developing high performance and high availability applications, using proven frameworks and technologies
- Making sure that the bank’s systems follow excellent architectural and engineering principles, and are fit for purpose
- Monitoring the technical progress against plans while safeguarding functionality, scalability and performance, and providing progress updates to stakeholders
- Designing and developing reusable libraries and APIs for use across the bank
- Writing unit and integration tests within automated test environments to ensure code quality
The skills you'll need
You’ll come with a background in software engineering, software or database design and architecture, as well as significant experience developing software within an SOA or microservices paradigm.
Along with development experience in one or more programming languages, you’ll bring an excellent understanding of implementing programming best practice, especially around scalability, availability and performance.
You’ll also need:
- Experience of developing microservices with Spring Boot, Strong Java development skills & relational databases
- Experience of containerized and Cloud infrastructures and environments like Docker and Kubernetes
- Knowledge of Maven and at least one automation tool such as Teamcity or Jenkins
- Experience in delivering solutions that cover the full lifecycle of applications in a quality or sustainable way including resiliency, latency, DR and failover
- Experience of leading software development teams, introducing and executing technical strategies
- Knowledge of using industry recognised frameworks and development tooling
- Experience of test-driven development and using automated test frameworks, mocking and stubbing and unit testing tools
- A background in designing or implementing APIs
- Experience of supporting, modifying and maintaining systems and code developed by teams other than your own