Develop, maintain and support mission-critical, enterprise-grade software applications that improve business efficiency and are aligned to the enterprise architecture and business strategy.
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. Knowledge sharing is key to the role and technical guidance as well as mentoring of junior to intermediate developers will be expected.
Experience and Qualifications
- 8 to 10 years’ senior java development experience using Java EE on Unix based platforms.
- Relevant IT degree or diploma.
- Relevant post graduate IT qualification.
- 5 years Software Development experience in a distributed computing environment using Java EE.
- Solid (Java EE) back-end development experience.
- Advanced understanding and everyday use of OO principles such as inheritance, interfaces, abstract classes, etc.
- Good systems and code design skills including good documentations skills where necessary.
- Understanding and experience with micro-services.
- Strong knowledge of REST API designs.
- Strong knowledge with CI/CD principles.
- Java EE (Not Spring)
- Back End Development
- Object Orientated development and design
- WebSphere Application Server and WebSphere Liberty Server
- 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 prioritise requests.
- Contribute to the design of scalable solutions that supports the system architecture.
- Translate business requirements into workable solutions and document solution into technical specifications.
- Design and code new software functionality using code that is scalable, readable, maintainable and re-usable.
- Develop and maintain productive working relationships with peers and organizational and role players to achieve effective collaboration.
- Provide stakeholder with regular feedback on the technical design and timelines for solution in order to manage expectations.
- Collaborate with business analysts and testing team in developing, testing and deploying new software system components or software system enhancements.
- Collaborate with 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 to 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.
- Examining Information
- Articulating Information
- Managing Tasks
- Interpreting Data
- Challenging Ideas
- Producing Output
- Developing Expertise
- Team Working