Global Clearing Trade Processing - Java Sr. Full Stack Developer, Associate
As a member of our Software Engineering Group, we look first and foremost for people who are passionate around solving business problems through innovation and engineering practices. You'll be required to apply your depth of knowledge and expertise to all aspects of the software development lifecycle, as well as partner continuously with your many stakeholders on a daily basis to stay focused on common goals. We embrace a culture of experimentation and constantly strive for improvement and learning. You'll work in a collaborative, trusting, thought-provoking environment-one that encourages diversity of thought and creative solutions that are in the best interests of our customers globally.
The F&O Trade Processing team is part of the Global Clearing business in Equities within the Corporate and Investment Bank. We are responsible for supporting the processing of over one million futures and options transactions every day as they flow between our clients, brokers, exchanges and clearing houses. In our business, our global footprint on some 80 exchanges is a clear market differentiator. But equally important is the timely, error-free and efficient processing of client trades, and technology, and specifically the applications supported by our team, plays a crucial part in the provision of these services to our clients. Our global team of 60 has a large presence in London with additional team members in Glasgow, New Jersey, Chicago, Mumbai, Bangalore and Singapore; extensive collaboration between locations is a feature of our working environment.
Our applications are built predominately in Java and utilize a number of advanced, distributed technologies including Gemfire, Kafka and Cassandra. During the next two years, we are also making a significant further investment in these applications as we seek to shift to containers (Kubernetes) and the cloud (GAIA, GKP and AWS) to increase our resilience, stability, capacity and performance. As well as our core portfolio of 12 in-house applications, we support another 15 or so vendor and third party applications which are integral to our workflow.
Developers are aligned to one of our Product Teams to work on the roadmap for a particular function and these include: Allocations (processing clients' instructions in real time); Booking (ensuring timely and accurate updates into our core books and records system); Clearing (interfacing to external parties to affect the clearing of transactions in real time); Charging (maintaining fees & commissions schedules which are used to apply charges to trades in real time); Data (addressing data quality, data retention, data models and reference data across all our applications); Modernization (focusing on shifting our applications to the right through the adoption of Kafka messaging, Kubernetes and containers to drive our migration to the cloud). The Product Teams are increasingly mature in the use of agile techniques.
Developers typically focus on one of three distinct technical specialists: front-end user experience developers (developing solutions in React, Typescripts and the Markets UI Toolkit); back-end real-time event processing developers (using Java and messaging technologies); full-stack developers who build middleware (typically restful web services and streaming technologies) to integrate solutions front-to-back. Responsibilities
- Design and build scalable and resilient technical solutions
- Work with data services team to identify sources of data (both internal and 3rd party) for data cleansing / enhancement / enrichment/ data warehouse
- Drive the delivery of business value via change programs/projects within the futures & options clearing technology group
- Create automated unit tests using a Test Driven Development approach
- Develop a strong understanding of key functions of clearing, margining & settlements within the F&O world.
- Partner with supporting tech leads to develop realistic and achievable project estimates
- Analysis and build within Control, Stability, Resiliency, Capacity & Performance areas.
- Testing: Unit, SIT & UAT planning and management.
- Robust delivery of code into the production environment with zero tolerance for post implementation issues
- Take part in decisions affecting long range organizational goals & strategic planning.
- Proactively look to develop, implement and further development best practices across the group.
- Contribute to quality improvement, code reviews, code/architecture standards, code reuse etc.
This role requires a wide variety of strengths and capabilities, including:
- Bachelor in Engineering/ Computer Science/ equivalent with at least 5 years of hands-on experience in core Java (at least JDK 1.8) with clear understanding of advanced concepts in collection framework, garbage collection, multi-threading etc
- Experience working with Maven, Jenkins, Git/Subversion etc.
- Experience working with related technical frameworks - Spring, JMS, JDBC, Hibernate/JPA, MyBatis etc.
- Solid understanding of database concepts and working knowledge with any of the vendors(Preferably Oracle) with at least some exposure to performance tuning
- Ability to take on difficult and complex large scale problems and provide end to end solutions
- Ability to build and maintain strong relationships with stakeholders in business, operations, operate etc.
- Some experience of providing production support in a Level2/Level3 capacity
- Very Strong problem solving, analytical and communication skills (both verbal and written)