We are seeking a talented and innovative Software Engineer to join our dynamic team in Johannesburg, South Africa. As a Software Engineer, you will play a crucial role in designing, developing, and maintaining high-quality software solutions that meet our clients’ needs and drive our organisation’s success.
Key responsibilities include:
- Design, develop, test, and maintain efficient, scalable software solutions throughout the full development lifecycle
- Collaborate with cross-functional teams to translate business requirements into technical specifications
- Conduct code reviews and contribute to continuous improvement of development processes
- Troubleshoot and upgrade existing software systems
- Develop JAVA applications and manage change deployment in mid-to-large applications
- Implement and maintain automated CI/CD pipeline builds
- Utilise AWS services and maintain application platforms
- Apply design patterns and best practices to deliver high-quality, maintainable code
- Work with Docker, Kubernetes, and Angular development as needed
Qualifications
- Bachelor’s Degree in Computer Science, Software Engineering or Information Technology.
- AWS Certified Developer Associate and/or AWS Certified Solutions Architect Associate – Mandatory
Experience
- 5 – 7 years broad experience in translating business and functional requirements into technical
specifications and developing the programming code to create the solutions. - 5 years extensive hands-on experience in developing JAVA applications Mandatory
- Experiences in change deployment in a mid-to-large application – Mandatory
- Experience in automated CI/CD pipeline builds – Mandatory
- Technical exposure and hands on experience in managing an application platform – Advantageous
- Knowledge and hands on experience in Docker and Kubernetes – Advantageous
- Familiarization to Angular development and implementations – Advantageous
- The individual is intended to have an exposure to maintain standards, guided by design/architecture patterns (in consultation with the Engineering Lead and the Architecture team), and follow best practices across the teams, deliver high-quality and maintainable code maintaining consistency and standardizations.
Additional Information
Behavioural Competencies:
- Adopting Practical Approaches
- Articulating Information
- Interpreting Data
- Managing Tasks
- Producing Output
Technical Competencies:
- Agile Engineering
- API Engineering
- Automation
- Cloud Computing
- Continuous Delivery (CD)
- Continuous Deployment
- Continuous Integration (CI)
- Core Systems
- Data Engineering
- Design Thinking
- Error Budgets
- Incident Response
- Infrastructure as Code (IaC)
- Knowledge Management
- Microservices
- Non-abstract Large System Design (NALSD)
- Observability (Application and Web Analytics)
- Platform Engineering
- Policy as Code
- Post-incidence Analysis
- Reliability and Resilience
- Security Engineering
- Service Level Management
- Software Engineering Methods
- Software Engineering Service Level Management
- Software Engineering Tools
- Software Foundations
- System Integration
- Test-driven Design (TDD)
- Threat Modelling