Cape Town, South Africa | Posted on 07/25/2024
This position will challenge software engineering as well as people skills. From a software engineering perspective, you will have the opportunity to solve and design complex integration patterns. Various technologies are used within this space, of which the major ones are Java EE, Maven, Jenkins CI, Docker, Amazon Web Services, Oracle, WebSphere Liberty, Angular, AIX, and Linux. Development challenges will include new software development as well as maintaining current software, including modernisation of platforms with minimal impact on business. From a people perspective, you should be able to operate on your own and within a team setup, depending on the projects you will be involved in. Knowledge sharing is key to the role, and technical guidance as well as mentoring of junior to intermediate developers will be expected.
Requirements
- 5-7 years' Senior Java development experience using Java EE on Unix-based platforms.
- 5 years Software Development experience in a distributed computing environment using Java EE.
- Advanced understanding and everyday use of OO principles such as inheritance, interfaces, abstract classes, etc.
- Good systems and code design skills including good documentation skills where necessary.
- Understanding and experience with micro-services.
- Strong knowledge of REST API designs.
- Strong knowledge with CI/CD principles.
Duties & Responsibilities
- Develop software based on technical design (Internal Process).
- Keep abreast of new technologies/methodologies, business changes, and internal system changes in order to align system development with best practices and system architecture.
- Collaborate with stakeholders to gather requirements, conduct analysis, and prioritize requests.
- Contribute to the design of scalable solutions that support the system architecture.
- Translate business requirements into workable solutions and document solutions into technical specifications.
- Design and code new software functionality using code that is scalable, readable, maintainable, and reusable.
- Develop and maintain productive working relationships with peers and organizational role players to achieve effective collaboration.
- Provide stakeholders with regular feedback on the technical design and timelines for solutions in order to manage expectations.
- Collaborate with business analysts and the testing team in developing, testing, and deploying new software system components or software system enhancements.
- Collaborate with the testing team to co-create test cases.
- Conduct System Integration Testing (SIT) and User Acceptance Testing (UAT) and resolve all issues/queries.
- Contribute to user acceptance testing (UAT) and training material.
- Once the solution has been successfully tested, prepare and produce releases of software components into production/live environment.
- Support continuous improvement by investigating alternatives and technologies and presenting these for architectural review.
- Maintain existing programmes, ensuring all errors are resolved and documented.
- Advise and guide colleagues regarding effective business system analysis approaches and techniques.
- Review and quality assure deliverables of junior team members in accordance with IT Strategy, architecture, and best practice.
- Mentor team members and provide insight into effective and efficient Java development practices.
- Design solutions that eliminate reoccurrence of errors.
- Provide technical guidance to the operations and support team.
- Monitor performance of solutions and make recommendations to improve the performance and functionality of the solution.
- Engage with clients in a client-centric manner (Client Services).
- Provide authoritative expertise and advice to clients and stakeholders.
- Build and maintain relationships with clients and internal and external stakeholders.
- Deliver on service level agreements made with clients and internal and external stakeholders in order to ensure that client expectations are managed.
- Make recommendations to improve client service and fair treatment of clients within area of responsibility.
- Participate and contribute to a culture which builds rewarding relationships, facilitates feedback, and provides exceptional client service.
- Self-management and teamwork (People).
- 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 (Finance).
- 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.
Additional Skills
- Examining Information
- Articulating Information
- Managing Tasks
- Interpreting Data
- Challenging Ideas
- Producing Output
- Developing Expertise
- Team Working
- GitLab
- Jenkins
- Ansible
- REST
- Back End Development
- Object-Oriented development and design
- WebSphere Application Server and WebSphere Liberty Server
#J-18808-Ljbffr