Responsibilities
- Designing software solutions
-
Works closely with stakeholders and cross functional team to translate business and technical requirements into solutions that meet
client / business needs.
- Designing complex software systems, considering scalability, performance and future requirements.
- Identifying the trade-offs in solutions and can clearly articulate and act on these where required.
- Produces solutions to programming challenges.
- Creates well designed solutions that balance client value with security, operations, resilience, performance and cost.
- Introduces and propagates new patterns, practices, technologies into the organisation to efficiently solve a business need.
- Software development and systems integration
- Work with other software engineers and architects in developing components based on needs that support application functionality.
- Optimise systems for maximum performance and scalability to handle increasing user loads.
- Develop reusable code, APIs and libraries for future use.
- Share impact of code changes with product team.
- Database management and application logic
- Implement and optimise database models and queries for efficient data storage and retrieval.
- Write business logic and algorithms to handle complex data processing and application workflows.
- Quality and testing
-
Implement and improve the organisation's prescribed development frameworks, patterns, and practices, with a particular focus on
automated testing and CICD.
- Conducts thorough code reviews and ensures high code quality for self and others.
- Utilises continuous integration, deployment, and automation tools effectively.
-
Perform testing with a strong preference towards developing automated testing scripts and procedures to ensure code robustness and
reliability.
- Practices, promotes and guides others in secure coding practices (devsecops) and addresses potential vulnerabilities.
- Operational Excellence
- Conduct investigations through troubleshooting and debugging to fix minor, major and escalated bugs, promoting system stability.
-
Perform first and/or second level standby across environments for integration between internal systems and applications, as well as
that of external service providers.
- React to system monitoring and alerting events in a timely manner.
-
Assist capacity planning on infrastructure requirements, as well as stability and load tests to improve system performance and
throughput.
- Maintains, modifies and upgrades existing solutions, recommending and implementing improved methods.
- Learning and continuous improvement
-
Expected to develop and maintain proficiency in modern programming paradigms, patterns and practices and apply or improve
what is used by their delivery team. (This will differ per delivery team).
-
Software Engineer Level III forms part of a structured career progression model where the incumbent will be exposed to meaningful
projects in order to develop their level of autonomy, decision making and problem-solving skills.
- Technical Leadership
-
Engage with product managers, project sponsors, and other stakeholders to support scoping of work and provide updates on
progress and status.
- Coach, guide and provide support to Software Engineer I / II
- Share expertise and knowledge with product team and stakeholders.
- Drives innovation, bringing new technologies and ways of solving problems into the team and organisation.
- Responsible to assist Software Engineer I / II with development work and perform code reviews.
|