Main responsibilities
- Develop solutions following defined standards and high quality
- Ensure Code quality, delivery and maintenance with non-regression
- Study, evaluate and provide feedback on functional specifications in terms of technical feasibilities and efficiencies of the solutions
- Manage the application designs, involve in hands development of cloud native solutions
- Provide detailed estimation for development of solutions as part of agile-scrum ceremonies
- Take care of the technical documentations, quality and standards of program wide software engineering objectives.
- Supervise and contribute to the non-functional testing
- Perform design and code review for peers
- Mentor junior team members
- Perform level 3 Support of applications in production:
- analyze, troubleshoot and resolve issues as they arise
- support in the recovery management in case of production incidents with great level of agility due to the criticality of payment systems and business
- Support and guide the peripheral development teams (viz. Test Automation Team) with best practices in development, design thinking etc.
- Drive the technical upgrades of payment systems like GPP, GPS (vendor owned/in-house), as needed
- Proactive monitoring of critical payment system at the applicative level to avoid unjustified downtime of these systems and incidents around those
- Provide the technical solutions (like quick-win utilities) to support the analysis or testing activities in order to reduce/eliminate manual efforts of the team, wherever feasible
- Manage/Co-ordinate with Vendor Development team on their deliverables.
- Review/Challenge the Vendor team on their technical/solutioning approach.
- Influence & Ensure that vendor follows CACIB best practices on Software Factory
Qualifications and Profile
At least a Bachelor’s degree in any of these faculties:
- Computer Science / Information Technology / Programming & Systems Analysis / Science (Computer Studies)
- This position requires a minimum of 10+ years of relevant experiences in Java-J2EE/cloud native software engineering, ideally in a banking environment with cash management / Payments processing domain
- At least 3-4 years of experience in cloud native / Kubernetes & Docker development, Streaming development on Hadoop platform will be added advantage.
Functional
- Basic understanding of payments and cash management domain and related software product development
- Work on complex systems and a challenging international work environment
- Good understanding of SDLC, with experience on at least one agile and design methodology (Scrum, XP, TOGAF…).
- At least one vendor Payment processing Product implementation knowledge (GPS, TPH, GPP, OPF etc.)
Technical
- Minimum 10+ years’ experience in web and stand-alone application design & development with Java/JEE/big data technologies in Unix/Linux environment.
- Strong ability to lead 5-8 technology enthusiasts
- Ability to performance tune applications for low latency and fault tolerance.
- Excellent understanding and practical experience of Spring Frameworks (IOC, Spring Data, Spring MVC, Spring Integration, Spring Boot etc.) & Spark Streaming Frameworks.
- Strong knowledge on code version management tools such as GitHub/GitLab/BitBuket.
- Experience with automated build and deployment tools eg. Helm Charts, ArgoCD, Jenkins, Gitlab runner, Nexus, Harbour, Maven or Gradle.
- Experience of working in TDD and BDD environment with standard testing frameworks (JUnit, Mockito, Cucumber, selenium and SOAPUI)
- Strong knowledge on distributed systems particularly on messaging brokers such as IBM MQ, RabbitMQ or Apache Kafka.
- Good knowledge of RDBMS (Oracle, PostgreSQL) and no SQL (Hbase, MangoDB) database systems
- Very good understanding of application system design, development, testing, deployment and maintenance using UML.
- Ability to assess interdependence and impact of a change at application level.
- Practical experience on shell scripting & Ansible equivalents for deployments and pipelines
- Good understanding on container technologies such as Docker and orchestrations through Kubernetes.
- Experience in Polyglot & sustainable developments through GO, Rust, Python etc are nice to have
Other Professional Skills and Mindset
- Work on complex systems and a challenging international work environment
- Good exposure to software engineering phases and best practices
- Highly analytic and detail oriented in approach with Excellent communication and presentation skills, with experience converting highly complex information into clear, concise documentation.
- Capable to effectively interact with peers / stakeholders
- Strives to deliver the solution in the most effective and timely manner
· Proactive with excellent verbal and written communication skills in English