Role Purpose
The Senior Specialist: Software Engineer position is based within the Technology Business Unit. The Software Engineer is responsible for creating prototypes, designing and building modules and solutions in an iterative agile cycles, develop, maintain, and optimize the business outcome. This role is responsible for estimating user and technical stories, designing and developing code, writing and executing unit and integration tests, and supporting testing of deliverables against user and technical story acceptance tests. The incumbent is responsible for performing peer reviews, collaborating with architects and other developers to produce “just enough” design, and ensuring that enough technical documentation and training is provided for reference and operational support. This role is responsible for providing software-related operations support, including managing level two and level three incident and problem management.
Your Responsibilities Will Include
- Estimate user and technical stories to help inform and prioritize backlog
- Design modules according to user stories, UX designs, and technical stories
- Develop solutions according to module designs and deploy using delivery pipeline
- Develop and execute unit and integration tests; support testing against user and technical story acceptance tests
- Suggest improvements to user stories and UX
- Manage technical debt as part of daily activities
- Conduct peer reviews and maintain coding standards
- Manage incidents as level two and level three support
- Manage problems as level two and level three support
The Ideal Candidate For This Position Will Have
- Grade 12 is essential 3 year Diploma / Degree in Computer Science, Information Systems, Business Administration, or other related field
- 5+ years of relevant experience of which a minimum of three years is in programming and/or systems analysis applying agile frameworks
- Experience working with agile methodologies, such as Scrum, Kanban, XP, LSD, and FDD
- Experience working with multiple programming and markup languages, such as HTML, CSS, JavaScript, Java, Ruby, SQL, XML, JSON, YAML, and Python, and paradigms such as object-oriented-, even-driven-, procedural-, functional-, and declarative programming
- Strong knowledge of software architecture principles
- Experience working in cloud-native environments
Professional Experience And Knowledge Of The Telecommunications Industry Preferred
- Certified Scrum Developer (CSD) preferred
- Competency in UX principles and practices preferred
Core Competencies And Knowledge
- Agile and lean programming and development of software systems in Web-scale environments
- Backlog item estimation
- Unit, integration, smoke and static code analysis testing
- Architectural element testing e.g. APIs
- Automated testing and tools e.g. Selenium
- Continuous integration and continuous delivery methodologies and tools
- DevOps culture, processes, and tools
- Cloud-native architectures, including public cloud PaaS / IaaS, micro-services architectures, API
The base location for this role is Cape Town.