At Vodacom, we’re working hard to build a better future. A more connected, inclusive and sustainable world. As a dynamic global community, it's our human spirit, together with technology, that empowers us to achieve this.
We challenge and innovate in order to connect people, businesses, and communities across the world. Delighting our customers and earning their loyalty drive us, and we experiment, learn fast and get it done, together.
With us, you can be truly be yourself and belong, share inspiration, embrace new opportunities, thrive, and make a real difference.
The Specialist Software Engineer role is based within the Technology Business Unit.
The role of the Specialist Software Engineer is to be responsible for the development of new and existing products and shared micro services by creating prototypes, designing and building modules and solutions in 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.
Estimate user and technical stories to help inform and prioritize backlog
Design modules according to user stories and technical stories
Develop solutions according to designs and deploy using continuous integration and deployment pipelines
Develop and execute unit and integration tests; support testing against user and technical story acceptance tests
Integrate image-scanning and signing process to prevent vulnerabilities as part of an enterprise’s continuous integration/continuous delivery (CI/CD) process.
Ensure applications are scanned during the build and run phases of the software development life cycle, emphasizing the scanning and identification of open-source components, libraries and frameworks.
Set up mandatory access controls, ensure separation of duties and institute a secrets management policy.
Deploy security products that provide whitelisting, behavioral monitoring and anomaly detection to prevent malicious activity.
Implement strong version control for code and components and by training the developers, QA teams on secure coding practices.
Deploy infrastructure automation tools to ensure that infrastructure provisioning and management is automated and streamlined to account for the dynamic nature of containerized workloads.
Build and test applications in production-like environments by integrating DevOps toolchains with Kubernetes-based container orchestration tools.
Focus on instrumenting applications to enable observability. This will involve deploying tools for additional logging, metrics collections and distributed tracing.
Manage incidents and problems as level two and level three support
Agile and lean programming and development of software and reporting systems (Eg. Springboot, Angular)
Backlog Grooming and estimation
Unit, performance, integration and static code analysis testing methodologies and tools (eg. JUnit, Jmeter, Loadrunner, Sonarqube)Architectural element documentation and testing (e.g. APIs, Swagger)
Automated testing and tools (e.g. Python, SOAP UI, Postman, Selenium)
Software incident and problem management
Expertise in multiple programming and mark-up languages, such as Java, .net, HTML, CSS, JavaScript, Ruby, SQL, XML, JSON, YAML, Python, PL SQL, Ab initio, ETL and paradigms such as object-oriented-, even-driven-, procedural-, functional-, and declarative programming
Continuous integration and continuous delivery methodologies and tools (eg. Jira, Gitflow, Nexus, Jenkins, JHipster, Elasticsearch, Logstash, Prometheus, Grafana, Kibana)
DevOps culture, processes, and tools
Cloud-native architectures, including public cloud PaaS / IaaS, micro-services architectures, API
Flexibility to deal with changing projects and priorities in a short space of time
Strong problem solving skills and ability to learn new methods and processes
Strong relationship building, persuasion, and collaboration skills that drives internal-and cross-team constructive feedback and support
Strong communications skills and time-management skills, with the ability to juggle multiple balls, and work well under pressure
Understanding of both the current Telecommunications and digital services market, artificial intelligence, business intelligence, emerging business and technology trends
Matric / Grade 12 essential
3-year degree / diploma Bachelor’s Degree or diploma in Computer Science, Information Systems, Business Administration, or other related field is essential
3- 5 years’ relevant experience in programming and systems analysis applying agile frameworks essential
Experience working with agile methodologies, such as SAFe, Scrum, Kanban, XP, LSD, and FDD
Strong knowledge of software architecture principles
Cloud Development certification (eg. AWS Certified Developer) preferred
Experience working in Continuous Integration and Continuous Deployment environments preferred
Experience and knowledge of Big Data and Analytics technologies preferred
Experience working in cloud-native (private cloud eg. Openshift and public cloud. Eg AWS, Azure Google Cloud) environments is preferred.
Competency in UX principles and practices preferred.