Join us as a Principal Engineer
- This is a challenging role that will see you design and engineer software with the customer or user experience as the primary objective
- You’ll actively contribute to our architecture, design and engineering centre of excellence, collaborating to improve the bank’s overall software engineering capability
- You’ll gain valuable stakeholder exposure as you build and leverage relationships, as well as the opportunity to hone your technical talents
What you'll do
As a Principal Engineer, you’ll be creating great customer outcomes via engineering and innovative solutions to existing and new challenges, and technology designs which are innovative, customer centric, high performance, secure and robust.
You’ll be working with software engineers in the production and prototyping of innovative ideas, engaging with domain and enterprise architects to validate and leverage these in wider contexts, by incorporating the relevant architectures. We’ll also look to you to design and develop software with a focus on the automation of build, test and deployment activities, while developing the discipline of software engineering across the business.
You’ll also be:
- Defining, creating and providing oversight and governance of engineering and design solutions with a focus on end-to-end automation, simplification, resilience, security, performance, scalability and reusability
- Working within a platform or feature team along with software engineers to design and engineer complex software, scripts and tools to enable the delivery of bank platforms, applications and services, acting as a point of contact for solution design considerations
- Defining and developing architecture models and roadmaps of application and software components to meet business and technical requirements, driving common usability across products and domains
- Designing, producing, testing and implementing the working code, along with applying Agile methods to the development of software with the use of DevOps techniques
The skills you'll need
You’ll come with significant experience in software engineering, software or database design and architecture, as well as experience of developing software within a DevOps and Agile framework.
Along with an expert understanding of the latest market trends, technologies and tools, you’ll bring significant and demonstrable experience of implementing programming best practice, especially around scalability, automation, virtualisation, optimisation, availability and performance.
You’ll also need:
- Excellent knowledge and experience of leading teams working on microservices based architecture, helping define how work gets distributed across layers like client, API gateway, service discovery and management of microservices infrastructure
- Experience in concepts like modular software development, decentralised data management, ability to develop software with autonomy of development, deployment, and scale
- Experience in technical skills like Java, REST, WADL, JSON Schema, Swagger, microservices, Docker and Kubernetes, BitBucket GIT, Cucumber, Cloud Technologies, Teamcity, JIRA and Confluence
- A strong background in leading software development teams in a matrix structure, introducing and executing technical strategies
- Significant and demonstrable experience of test-driven development and using automated test frameworks, mocking and stubbing and unit testing tools
- A background in designing or implementing APIs
- The ability to rapidly and effectively understand and translate product and business requirements into technical solutions
- A background of working with code repositories, bug tracking tools and wikis