Job Description
To realise the detailed design through programming and configuration and provide guidance and mentoring to other software developers. A commitment to collaborative problem solving, sophisticated design, and creating quality products is essential. You will participate in the development of the detailed design for components under your ownership and own specific application components within the Asset Grouping / Journey.
Responsibilities
Produce working quality software that meets the design and contribute to designs.
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 automation.
Exposure to DevOps principles, methodology, and tools.
Develop critical and complex technical components in your 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 reusable.
Deliver software that is observable and scalable.
Conduct estimates of work effort.
Troubleshoot and solve software issues.
Produce documentation as per organizational standards.
Continuously improve 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 artifacts and store them in the source control library.
Manage the deployment package and its execution.
Optimize the toolchain in collaboration with the Biz/Dev/Ops Engineer.
Update and control the Asset Code Knowledge base.
Ensure integration of your work with other individuals and in the team.
Collaborate and participate with designers, product owners, and engineering leads to refine the solution.
Contribute to 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 your field of expertise.
Ensure personal growth and effectiveness in performance of roles and responsibilities.
Contribute to the Nedbank Culture building initiatives (e.g., staff surveys, etc.).
Participate in and support corporate responsibility initiatives for the achievement of business strategy.
Seek opportunities to improve business processes, models, and systems through 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 with 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 Azure DevOps).
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.
#J-18808-Ljbffr