Software Engineer

Software Engineer

Tower Group | Johannesburg, GT, ZA

Posted 2 days ago

Apply Now

Description


Role purpose:

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.

Key accountabilities and decision ownership:
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
Key performance indicators:
Number of new/updated features released per quarter
% of users of new features by channel
Release frequency
Defects per User story points
Productivity improvement /Velocity
Core competencies, knowledge and experience:
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
Code reviewing
Software incident and problem management
Expertise in 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
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
Highly cross-functional and able to swap and perform adjacent roles at short notice
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, with the ability to distil difficult technical concepts into simple and actionable modules
Strong time-management skills, with the ability to juggle multiple balls, and comfortable working under pressure
Willingness to track, assess, and incorporate practice and technology developments into day-to-day working
Good understanding of the business capability / user journey, wider organizational goals, and desired product business outcomes
Must have technical / professional qualifications:
Bachelor’s Degree in Computer Science, Information Systems, Business Administration, or other related field
At least 5 years 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
EE candidates
Must have a degree
Skills – Agile – Scrum - JAVA – SQL
Work experience 4 years and above
Ideal candidate must come from the Banking – Telecoms medium size companies