Your key responsibilities
- Demonstrably solid software engineering skills.
- As part of a high-performing development team, design and deliver highly functional, robust and scalable code.
- Leverage design patterns, test driven development (TDD) and behavior driven development (BDD) to build software that is reliable and easy to support in production
- Experience of working in a team development environment as well as globally distributed project team
- Leads development of source code, including descriptions, for all software components in accordance with the detailed software requirements and design
- Experience in application architecture and solution design
- Hands-on experience of Microservices architecture, microservices development and cloud technologies would be added advantage
- Experience in understanding enterprise data models and documenting data attribute mapping & interface control requirements
- Actively participate and contribute in Agile ceremonies including Daily Stand up's, Sprint Planning, Sprint review, Sprint retrospective meetings
- Strong communication, negotiation, networking and influencing skills are essential because collaboration with end-users, technology and operational functions are critical to the relevance of the product.
- Verifies the developed source code via reviews (4-eyes principle) and resolve review findings
- Integrates software components following the groups integration strategy
- Verifies integrated software components by unit and integrated software testing according to the software test plan. Software test findings must be resolved
- Ensures all code changes are tracked and recorded through the groups change management process as Change Items (CIs) and that development is scheduled and approved
- Provides Release Deployments on non-Production Management controlled environments
- Captures Build and Deployment notes, develops Software Product Deployment & Operating Instructions
- Manages maintenance of applications and performs technical change requests scheduled according to Release Management processes
- Fixes software defects/bugs
- Measures and analyses code for quality
- Collaborates with Functional Analysts and QA to complete work, as required.
- Reviews and mentors other developers in developing solutions which perform to expected results and handle negative test case scenarios
- Provides Level 3 support
- Contributes to root cause/problem analysis and solution brainstorming
- Collaborates with Functional Analysts and QA to complete work, as required.
- Create required documentation for the project.
- Recommend changes to improve established java application processes and its performance
- Shall be ready to learn new Java technologies as per the project requirements
Your skills and experience
- Full stack Java developer
- Very good practical experience of Event Driven Architecture application is a plus
- Strong design skills in building solutions for cloud and microservices architecture and ability to guide the Dev team for both solution and issue resolution independently
- Hands-on Experience in design, architecture, source code management, continuous build, continuous integration technologies, TDD, performance improvement and profiling tools
- Good understanding of web technologies, frameworks and tools, for example: HTML, CSS, Javascript, Angular, Bootstrap, React, D3, Node.js
- Experience with CI/CD using Jenkins is a plus.
- Experience with Docker, Kubernetes, OpenShift, and Google Cloud Platform is a plus
- OS:Unix, Windows
- Database:Oracle (preferred), DB2
- Languages and Frameworks:Java, Spring Boot, Event Driven Architecture, React JS/Angular JS, J2EE, Mybatis, Hibernate, Junit
- Tools:GIT, Eclipse/IntelliJ, Maven, Ant, Linux/Unix shell scripting, JMS/MQ
- Other (Plus/Advantage):
- Knowledge of Messaging (Middleware)
- Knowledge of Design Patterns
- Knowledge ofLoan IQ product and data model
- Knowledge or experience of C++ but not mandatory
- Experienced with Docker, Ansible, Chef, and/or Puppet highly preferred.
- Experience with TDD and BDD, with hands-on experience with least one testing framework, e.g. Junit, Cucumber, Selenium
Key Attributes:
- Ability to architect/design solution for a given requirement
- Ability to provide technical leadership to the team
- Ability to write high quality code
- Ability to solve business or production problems
- Strong analytical skills
- Strong interpersonal, written and verbal communication skills, particularly in a multi-cultural environment
- Excellent team player
- Keeps pace with technical innovation
Experience and Education:
- Bachelors Degree from an accredited college or university with a concentration in Computer Science or equivalent
- 12+ years of relevant work experience
- Investment Banking experience will be advantage