Job Title: Senior Software Engineer – Java Development (Global Markets Technology)
Introduction:
Join a dynamic and high-performing software engineering team within our client’s Global Markets Technology division, specializing in Pricing and Post Trade Services. We are seeking a passionate and experienced Senior Software Engineer with a strong focus on Java development to contribute to the design, development, and maintenance of critical financial systems. In this role, you will play a key part in building quality software, leveraging modern software engineering practices and technologies. This is a hybrid role, offering the flexibility of online work with occasional office attendance as required.
Duties and Responsibilities:
- Design, develop, implement, integrate, and maintain digital Forex pricing making, price distribution, and post-trade management systems.
- Ensure continuous incremental delivery of working software, adhering to agile methodologies.
- Maintain and promote excellence in software engineering practices.
- Foster close collaboration and cooperative relationships with business stakeholders, colleagues, and other teams.
- Contribute to the continuous improvement of technology and team capabilities.
- Analyze and resolve complex errors in development and production environments.
- Compile clear and concise design documentation.
- Mentor team members in technical skills and agile approaches.
Qualifications:
- Bachelor’s degree (or higher) with significant computing and mathematical content. Examples include:
- BEng. or BSc Computer Science (or similar)
- BCom Informatics with notable software engineering content
- Additional relevant IT Development certifications are advantageous.
Experience:
- Required: At least 10 years of relevant experience in key result areas, demonstrating a strong track record of software development.
- Advantageous:
- Real-time systems knowledge.
- Real-time trading system knowledge.
- Banking, capital markets (foreign exchange, money markets, fixed income, derivative products) business knowledge.
Primary Technology Knowledge:
-
REQUIRED:
-
Java SE.
- Design Patterns, Architectural Patterns.
- Designing for latency-sensitive systems.
- TDD/BDD principles.
- JUnit and mocking frameworks.
- Database design.
- UNIX/Linux, BASH shell scripting.
- Version control systems (Git and others).
- Build automation (Maven and Gradle).
- Continuous Integration.
- Integration skills: Messaging, queuing.
- Internet protocols, IP networking, firewalls, proxy servers, the Web.
-
Clean code and code quality tools such as SonarQube.
-
ADVANTAGEOUS:
-
FIX protocol experience.
- Web services.
- Unix operating systems.
- Microservices.
- Cloud (AWS) expertise.
- Containerization – OpenShift, OpenStack, Kubernetes, Docker.
Competencies and Behaviours:
- Proficient in agile software development methodologies.
- Skilled in defining, estimating, and prioritizing tasks and stories.
- Committed to continuous, incremental delivery of working software.
- Proactive and able to take ownership of tasks and problems.
- Capable of producing results with minimal supervision.
- Excellent communication skills, both written and verbal.
- Strong analytical and problem-solving abilities.
- Ability to understand and balance technical aspects and business drivers.
- Self-motivated and committed to continuous improvement.
- Ability to multitask, and be responsive and flexible.
- Ability to work well with third party vendors.
- Ability to fit into a culture of sharing information, networking and participation in group activities.
Desired Skills:
- Programming
Desired Work Experience:
- 5 to 10 years Software Development
Desired Qualification Level:
- Degree
About The Employer:
Global Markets Technology