Responsible for end to end implementation, unit testing and deployment of complex software solutions. Assisting application architect in designing software solutions and aiding in the testing of third party integrations.
Design, implement, test and deploy complex software solutions
Responsible for assisting application architect in extending the design of the company core insurance capabilities as well as any other capability needed.
Implementing complex software designs using the Company Java stack. (IBM WAS, IBM BATCH, Spring, SpringBoot, Spring Batch)
Ensuring an adequate level of unit test coverage across all developed source code.
Taking ownership, ensuring reliability and fault tolerance across java components.
Contribute to continuous code review and quality assurance processes.
Actively use SonarQube to increase source code quality, root out bad practices and security vulnerabilities
Responsible for applying SOLID software development principles
Responsible for best practices in logging and monitoring enablement
Continuously keep changelogs of components up to date as needed when changes occur
Actively being involved in deployment of software using Jenkins by applying the DevOps principle that if you code it, you deploy it.
Work with DBA’s and network administrators to tune operating systems, networks and transaction processing middleware to work with the DBMS (PostgreSQL, DB2, MySQL)
Engage with all stakeholders in a professional and cooperative manner
Provide authoritative, expertise and advice to all stakeholders
Build and maintain relationships with internal and external stakeholders
Deliver on agreements made with stakeholders in order to ensure that expectations are managed
Make recommendations to improve stakeholder engagement
Participate and contribute to the Company culture by living the Company values.
International travel might be required depending on the team you are placed in.
Self-management and teamwork
Develop and maintain productive and collaborative working relationships with peers and stakeholders
Positively influence and participate in change initiatives
Continuously develop own expertise in terms of professional, industry and legislation knowledge
Contribute to continuous innovation through the development, sharing and implementation of new ideas
Take ownership for driving career development
Contribute to financial controls and planning
Identify solutions to enhance cost effectiveness and increase operational efficiency
Manage financial and other company resources under your control with due respect
Provide input into the risk identification processes and communicate recommendations in the appropriate forum.
Skills and Experience
Bachelor degree in IT related field or Science & Engineering
7+ years of relevant IT software experience (Development SDLC lifecycle)
3+ years of experience in Java development using Spring.
Proven experience working in an AGILE environment.
Strong Core Java skills.
Strong in Unit Testing, Integration Testing and Mocking
Good Understanding of Software Design Patterns (like Adapters, Business Objects, Delegates, Service Locator, Singleton, DAO, DTO)
Familiarity and good understanding of multithreading
Experience with queueing technologies.
Experience building REST web services.
Familiarity creating and using Docker / Kubernetes is preferable