Responsibilities: Design, develop and implement solutions to users needs and requirements. Review and improvise code. Technical architectural design. Develop and document design, source code and technical architecture. Maintain and manage existing source code. Run tests and fix bugs. Coordinate with architects and business analysts to determine functionalities. Develop technical solutions to complex business problems. Design and develop technical solutions for enterprise-level projects. Design and develop data analysis solutions. Design and develop logical and physical data models that meet application requirements. Mentor teammate. Requirements: Minimum requirements: Have a minimum of 5 years experience in software development. Be passionate about technology, enthusiastic about problem solving, and constantly seeking to learn and improve your skillset. Have had exposure to the full software development lifecycle. Analysis and Design Sound knowledge of OO design principles and patterns. Understanding of ORM frameworks Java Spring Boot (Java / J2EE) Docker Kubernetes Skills: MSSQL/Oracle Identity Server authentication. Cloud Native architecture Versed in DevOps methodology including setting up CI/CD pipelines. Exposure to Agile methodologies (Scrum, Kanban). Wide-ranging experience using Java tech stacks and other programming languages. Experience in RESTful web services and Identity Server authentication. Experience with microservices architecture and design. Ability to communicate about technology in non-technical terms to colleagues and Clients. Ability to work calmly and methodically when under pressure. Preference will be given, but not limited to candidates in reference to the Employment Equity Act (EEA) of South Africa.