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)