Job Description To realise the detailed design through programming and configuration and provide guidance and mentoring to other software developers.
Therefore, a commitment to collaborative problem solving, sophisticated design, and creating quality products is essential.
To participate in the development of the detailed design for components under your ownership.
To realise the detailed design through programming and configuration and provide guidance and mentoring to other software developers.
To own specific application components within the Asset Grouping / Journey that you work for.
Responsibilities • Produce working quality software that meets the design as well as contribute to designs and/or produce detailed design for at least 1 system within an asset grouping.
• Ensure the performance, quality, and responsiveness of applications • Collaborate with a team to define, design, and ship new features • Understand Technical Design documentation when developing solutions • Identify and correct bottlenecks and fix bugs • Help maintain code quality, organization and automatization • Exposure to DevOps principles and methodology and tools • Develop critical and complex technical components in area of accountability • Deliver system component designs that are robust and fault tolerant for large complex systems (under supervision) • Ensure system component designs are supportable, maintainable and re-usable • Deliver software that is observable and scalable • Conduct estimate of work effort • Trouble shoot and problem solve of software issues.
• Produce documentation as per organisational standards • Continuous improvement of software • Provide Maintenance and support of software in environments of accountability • Develop unit and system test cases and conduct unit and system testing.
Adopt and implement TDD.
Perform Code, Standards, and Patterns checks on developed software.
• Create deployment artefacts and stores in source control library • Manage the deployment package and the execution thereof • Optimise the tool chain in collaboration with the Biz/ Dev / Ops Engineer • Update and control the Asset Code Knowledge base • Ensure integration of own work with other individuals and in team • Collaborate and participate with designers, product owners and engineering leads to refine the solution.
• Contribute into the decomposition of the system solution into component parts for development • Support the achievement of the business strategy, objectives and values • Stay abreast of developments in field of expertise • Ensure personal growth and enable effectiveness in performance of roles and responsibilities • Contribute to the Nedbank Culture building initiatives (e.g.
staff surveys etc.)
• Participate and support corporate responsibility initiatives for the achievement of business strategy • Seek opportunities to improve business processes, models and systems though agile thinking.
• Provide mentoring for the development squad you are assigned to Skills • Proficient in Java • Proficient in Java IDE • Solid understanding of object-oriented programming • Good knowledge of performance limits and characteristics • Knowledge of memory management and multi-threading • Familiarity with RESTful APIs to connect to back-end services • Comprehensive understanding and implementation of UI design and a user-oriented focus • Implementation of automated testing platforms and unit tests • Knack for benchmarking and optimization • Proficient understanding of code versioning tools (e.g.
Git and/or AzureDevOps) • Familiarity with continuous integration • Exposure to working in Agile methodology and relevant tools (e.g.
Jira) • Networks; Testing; programming; tools administration • BSc Computer Science qualification or equivalent • Minimum of 3 years of programming experience