Join us as a Software Engineer, Trade Store
- Join our Chief Digital Information Office in Commercial & Institutional, where we harness technology innovation, business agility and one-bank collaboration to push the boundaries of what’s possible for our customers
- The wellbeing and growth of our people is fundamental to our shared success, which is why we’re passionate about cultivating an environment that fosters inclusion and champions potential
- Our journey will be challenging and complex, but truly transformative – so if you’re ready to stretch your capability, gain unique experience and shape the future banking experience for generations to come, this is your opportunity
- This role comes with flexi-working, so you can start and end work when you want, as long as you work your weekly hours and you’re working within core times
What you'll do
You’ll be joining us in Shared Services, where we provide the necessary platforms for trading, market and reference data, and products that are key enablers for other Commercial and Institutional domains.
Sitting within a team responsible for maintaining and developing the trade store, which is the main storage and distribution hub of the bank’s trades, you’ll apply widely agreed software engineering principles and methodologies to design, develop, test and maintain applications and services. As such, you'll achieve the stated business and technology goals within required budgets and timelines. We’ll also look to you to oversee the quality of work, making sure that it meets the technical standards for all services output.
You’ll also:
- Design and develop reusable libraries and APIs for use across the bank
- Design and develop software that is amenable for a greater automation of build, release testing and deployment process on all environments
- Drive the reuse and sharing of platform components and technologies within the software engineering teams
- Deliver software components to enable the delivery of platforms, applications and services
- Write unit and integration tests, in automated test environments to ensure code quality
The skills you'll need
You’ll need extensive knowledge of, and a strong background in software engineering, software design or database design and architecture, as well as extensive experience of developing software in a SOA or micro-services paradigm. You should also have development experience in a programming language, experience of using industry recognised frameworks and development tooling, and a background of implementing programming best practice, especially around scalability, availability and performance.
You'll have demonstrable experience in core Java 8+, data structures, IO, multithreading, concurrency, and of implementing programming best practice, especially around public APIs, distributed systems, scalability, high availability and performance. Experience of C#, gRPC, Netty, RX, big data, public clouds, Kubernetes, Terraform, or infrastructure would be beneficial.
You’ll also need:
- Solid understanding of database concepts such as transactions, replication, indexing, sharding, or similar
- Demonstrable expertise of MongoDB and OpsManager at enterprise scale
- Demonstrable expertise of Apache Kafka deployments at enterprise scale
- Extensive knowledge of developing and maintaining widely used public APIs
- Extensive experience of test-driven development alongside the use of automated test frameworks, mocking and stubbing and unit testing tools
- Knowledge of the key phases of software delivery lifecycle and established software development methodologies
- The ability to understand and support, modify and maintain systems and code developed by other engineering teams