Software Engineer - Java
The GWM (Global Wealth Management) Trading Middleware team is currently seeking a developer to join and drive a team responsible for the design and delivery of a strategic middleware architecture. The project focuses on design/build of Synapse, a core middleware framework with a central metadata engine, event based processing, control monitoring and distributed functional modules deployed on
the private and/or public cloud. Synapse is also being developed for adapting to non-trading workflows used in GWM.
This role requires a wide variety of strengths, capabilities and responsibilites;
• Participate in the design and delivery of strategic middleware application
• Design and build key software components of Synapse, a core middleware framework with a central orchestration engine; event based processing and distributed functional modules.
• Implement and test code for distributed event driven services which requires knowledge software development best practices.
• Work in close partnership with a group of developers across geographical locations. This includes meetings, emails and other interaction with the software development team.
• Work on an agile project environment, with the ability to work with the Product Owner and SCRUM Team from development through to testing and delivery of product increments.
• Understand the code quality, code security and application quality metrics in order to make intelligent decisions throughout the delivery lifecycle.
• Participate actively in the software development and architecture discussion, through a detailed understanding of current application development tools and techniques.
• Focus on engineering excellence and compliance with all corporate, regulatory, IT risk and architecture policies.
• Knowledge of industry-wide technology trends and best practices
• Passionate about building an innovative culture
• Strong server side development background with proven track record in designing and delivering distributed, event driven services and be able to demonstrate a detailed knowledge of architecture principles and software development best practices.
• Extensive knowledge of Java (8 or above) development including areas such as Spring, and Spring Boot.
• Experience of building a new system or module from scratch.
• Knowledge of web service technologies such as REST and JSON.
• Knowledge of application security areas: authorization, authentication, encryption
• Multi-threaded application development experience.
• Relational database and SQL proficiency
• Automated testing techniques - especially BDD.
• Experience working with Sonar, SSAP, JIRA, Greenhopper, GIT
• Strong written and oral communication skills.
• Strong team working skills and the ability to work on multiple parallel work items with other developers, analysts etc.
• Knowledge of Project & Program Reporting principles.
• BS/BA degree or equivalent experience
• Results oriented: Drives results through people, communication, influence and interaction.
• Experience in development of High Availability system architectures
• Cloud and/or similar distributed processing
• Ability to implement change and development process improvements, including required culture changes