Job Description
Software Developer (JAVA)
Who we are
Crdit Agricole Corporate and Investment Banking (Crdit Agricole CIB) is the corporate and investment banking arm of Crdit Agricole Group, world's 12th largest bank by total assets.
Our Singapore center (ISAP or Information Systems Asia Pacific) is the 2nd largest IT setup (after Paris Head Office) for Crdit Agricole CIB's worldwide business. We work daily with international branches located in 30 markets by:
- Envisioning and preparing the Bank's futures information systems
- Partnering and supporting core banking flagships and transverse areas in their large scale development projects.
- Providing premium In-house Banking applications,
This unique positioning empowers us to bring our core banking business a sustainable competitive advantage on the market.
We seek innovative and agile people sharing our mindset to support ambitious and forthcoming technological challenges.
Position
The position is within the Capital Markets IT (CMI) division which manages information systems for capital markets activities which includes Front Office (FO) booking platforms, Risk Management (RM) control and regulatory reporting systems, financial product and contract valuation systems, and much more.
CMI teams are mainly located in Paris, London, New-York, Hong-Kong, India and Singapore. Current position is based out of Singapore and successful candidate will be able to work in an international context with distributed engineering teams striving for highest quality architecture and design.
Main responsibilities
Able to lead in terms of technology and conceptualize, propose design and architectural evolution.
Contributing to development of high quality fully tested source code complying with deadlines, schedule and coding standards.
Liaise with business analysts for clarification and understanding of requirements.
Organize and keep up to date detailed technical documentation
Develop tests strategy in coordination with project manager / Business Analysts
Provide technical assistance during user acceptance test
Support applications in production - analyze and resolve issues as they arise as well as propose optimizations for future.
Qualifications and Profile
The successful candidate will definitely have:
At least 6 years of software development experience
At least 5 years experience working with Java.
Strong knowledge on various design patterns
A strong understanding of recent Java language features, such as lambdas, streams, and futures
Good knowledge of algorithms and data structures, with strong fundamentals in complexity analysis
Strong ability to analyze code understand execution flow & debug even without access to a debugger
Experience with Maven, Git, writing and maintaining integration tests
Strong familiarity with Linux and bash
Good knowledge of SQL or an SQL-inspired dialect such as HQL
Experience in cloud native architecture.
An ideal candidate will also have expertise in some or all of the following:
Jenkins and Ansible with exposure to devops culture
Jira or a similar issue-tracking system
The Spring framework and IoC, and particularly Spring Boot and Swagger for restful web services
Messaging technology such as kafka, MQ
Additionally, knowledge of the following would be helpful although it is not required:
Web development fundamentals (HTML, Javascript, jQuery, ReactJS, etc)
Docker/Kubernetes, Microservices
ElasticSearch
General knowledge and understanding of investment banking domain, capital market FO/BO environment is an advantage
Understanding or interest in finance & financial markets, particularly interest rate derivatives in their many forms (Forwards, Futures, Swaps, Swaptions, etc)
Other Professional Skills and Mindset
Excellent written and verbal communication skills for both team mates and management
Strong analytical and problem solving skills
Proficient software development life cycle
Appetite to follow technology trend and participate to communities
Passion for sharing expertise and grow team members's skills
Interest in mentoring and guiding junior team members on the path of high quality deliverables.
Education Requirements
At least a Bachelor's degree in any of these faculties:
Computer Science
Information Technology
Programming & Systems Analysis
Science (Computer Studies)