The Financial Markets Data and Middleware team is looking for strong, hands-on candidate to fill the role of Senior Application Developer. Our team develops the solutions for golden sources of reference data, and message based integration for global Financial Markets application systems at Key current initiatives include creation of golden sources of operational reference data, the distribution of reference data to application systems and integration of trade processing systems front-to-back.
Key Roles & Responsibilities
The key responsibilities for the senior developer includes:
Understand the user requirements and participate system design, particularly the business/functional services. Participate into the full development life cycle of solution building
Track and maintain metrics such as system performance and system security
Contribute to design and implementation of application development solutions
Hands-on programming work for development projects
Contribute to implementation and enforcement of best practices related to standards and control of software code, testing and release management in messaging development
Release to production and provide third line support to production system support team.
Be able to analyse issues and fix them during production and testing.
Qualifications & Skills
Required experience, qualifications and skills:
At least 6 years of extensive experience on backend technology
Extensive hands-on programming experience in Java
Very strong understanding of multi-thread and multi-core design patterns with specific focus on concurrency and messaging patterns, instrumentation and error recovery and management.
Microservices implementation experience with focus on domain driven design.
Spring Boot, Spring Cloud and Netflix OSS experience.
Working knowledge of streaming/data pipeline tools like Kafka will be an added advantage.
RESTful API design and development.
Strong persistence/ storage experience (using JPA/Hibernate, Redis, Memcached, data model design, Cassandra/ PostgresSQL/Oracle)
Good knowledge Reactive / event driven programming
Good experience in using TDD and test framework such as Mockito, JUnit.
Good understanding and practical experience in continuous integration, with specific focus on automated build/integration and performance testing via Jenkins and deployment of packages using CI/CD tools (Ansible, Vagrant, Chef etc)
Basic knowledge in Docker container and orchestration (Kubernetes).
Experience in Instrumentation framework such as ELK or Grafana.