Role Overview
As a Full-stack Software Engineer at TP ICAP you will be part of a talented team delivering business critical software for the internal broking division and their external customer base. You will work within the API team building out a consolidated API for broking, that includes messaging, UI and interoperability across brands, asset classes and clients.
Role Responsibilities
1. Work closely with the Solution Architect to design/build/deploy and maintain an API Layer to align to the IT strategy/vision.
2. Work across Fusion and other Engineering Teams in TPICAP to integrate the API Layer.
3. Work in partnership with QA to ensure the delivery of quality software.
4. Communicate with governance streams to ensure adherence to and development of process, quality and architectural design
5. Deliver against both Functional and Non-functional requirements.
6. Take Ownership/Accountability for development of key features and drive to completion.
7. Communicate effectively on progress and ensure impediments are raised early to minimise impact on the delivery.
8. Take part in incident management to ensure Production defects are rectified based on their criticality and severity and to a sufficient standard.
9. Ensure inter-project dependencies and projects risks are understood and managed
10. Use technical experience to collaborate with architecture to guide software solutions
11. API Discovery – Implement a portal for API management and discoverability for engineers across Fusion and the wider organisation.
12. Develop Functional and Performance testing platform to support future application design decisions.
13. API Toolkit – Develop best-in-class AsyncAPI, OpenAPI and GraphQL to include support for CloudEvents, Distributed Tracing, Entitlements, Resilience and Observability
14. API Migration – Work directly with Asset class application teams to migrate to the new API
Experience / Competences
Essential
15. Demonstrate and current experience of hands-on Back-End Software Engineering using Microsoft .net c#
16. Experience of Application Lifecycle Management Tools and technologies such as Source Code Management; git, DevOps platforms; gitlabs, TeamCity
17. Experience of and understanding of the importance of maintaining code quality using Unit/Integration/e2e testing tools such as N\XUnit, Moq, Jasmine, Cucumber. Utilising Quality Assurance expertise to automate regression.
18. Experience of writing and maintaining APIs
19. Knowledge and use of Cloud Technologies and concepts preferably on AWS or Azure/GCP etc.
20. Experience of Messaging Middleware e.g. Solace, RabbitMQ, AWS SQS
Desired
21. Experience of Engineering using Java
22. Experience of OO design principals such SOLID / DRY / YAGNI to create maintainable, self-documenting and high quality code.
23. Experience of Architectural Patterns and practices such as Backend for Frontend, Micro Frontends, Microservices, MediatR
24. Experience of Domain Driven Design (DDD) and implementing patterns like CQRS to facilitate polyglot persistence.
25. Experience of utilising Dev(Sec)Ops to automate and minimise delivery times from Development to Production e.g. utilising CI\CD
26. Use of and working with Containerization to aid deployability, testing and loose coupling.
27. Agile exponent to speed up delivery, reduce risk and provide maximum value to the end users
28. Knowledge of the Broking \ Trading business domain