Purpose of the job
To lead the software application development function within the NCC. To provide expert input into defining the NCC digital architecture and best practice standards.
Key Responsibilities
-
Coding and development
-
Utilise established development tools, guidelines, and methods for handling development task
- Maintain detailed documentation and project files concerning progress, problems, and requiredchanges, and provide regular reports on such to the ICT Team and Management.
- Develop at all stages of the interface component design from conception through to execution
- Develop reusable, efficient, and scalable code
- Writing new code or modifying code to enhance system functionality
- Develop new software applications.
- Develop real-time transaction processing systems that can support millions of transactions daily
- Complete coding & development in line with agreed timelines.
- Develop/ Build efficient and secure API/integration with other systems (internal & external systems)
-
Lead NCC development and automation projects.
-
Code Quality Management
-
Adhere to the defined procedures for code management, code reviews, coding standards, naming conventions and security standards
- Perform testing to ensure any changes made to the system are of a high standard and the system hasn’t regressed
- Perform code reviews to ensure current code meets quality and best practice standards
- Ensure code version control is in line with best practices standards/
- Adhere to change control processes
- Help maintain code quality, performance, and application responsiveness
- Create unit and integrated system tests to show that the developed functionality works as intended
-
Create and execute functional test scenarios (dev testing)
-
Analysis & Design
-
Assist in the creation of user story definitions.
- Analyse system change requests to provide work estimates
- Convert user stories into a system design that addresses a business problem (fit-for-purpose solutions)
- Design application user interfaces that are fresh (modern) and exciting
- Design APIs and external system interfaces for integration with third-party applications
- Participate in research and innovation, analyze internal systems against current technology trends and provide recommendations.
-
Maintain knowledge of current and emerging technologies/products/trends related to digital innovative solutions development
-
Database Design and Management
-
Design database structures/ architecture to provide for efficient performance and security controls.
- Monitor system databases to identify and resolve issues.
- Ensure data integrity and database security.
- Optimise databases for high performance
-
Write queries to extract data and create reports
-
Support and maintenance
-
Monitor everyday activities on the system and provide support to end-users.
- Evaluate and improve application performance and high-availability features
- Perform root cause analysis on bugs to find and fix the cause of a problem in an integrated system
- Adhere to system change control process
- Communicates status and escalates risks and issues appropriately and timeously
- Ensure application management audit report issues are addressed
- Compile monthly reports for the area of responsibility and submit them to senior management
- Resolve problems across multiple platforms (Dev, QA, Production, etc)
- Attend to support tickets with the agreed SLA targets.
-
Collaborate with the infrastructure team(s) to solve technical issues affecting software applications.
-
Training & People Management
-
Train and mentor junior developers and interns
- Perform post-development system training for NCC staff
- Develop system documentation (e.g Manuals & SOPs)
- Facilitate end-user training
- Performance management junior developer(s)
-
Participate in the development and implementation of the NCC software application-related policies and procedures.
-
Financial & Supplier Management
-
Contribute to the ICT budget formulation by determining needs for the area of responsibility.
-
Supplier management for the area of responsibility to ensure the NCC gets value for money for contracted services.
-
ICT Continuity & Security
-
Participate in the software applications’ risk identification on regular basis.
- Identify and communicate to management software application project risks.
- work with the infrastructure team to deploy, test and manage software patches that may affect the NCC software application.
- Work with Database Administrator(s) to ensure databases are backed up and can be restored.
- work with the ICT infrastructure teams to design the best fit disaster recovery for the NCC software applications and partake in disaster recovery simulations.
Minimum Qualifications:
- NQF 6 National Diploma/ B. Degree: Computer Science/Information Technology/Information Systems or equivalent qualification with major subjects in software development, Valid driver’s license (code 8)
Minimum Experience :
- 5 – 7 years experience as a Software Developer with 2 – 3 years experience as a Lead/Senior developer.
- 2 years’ NetCore API.
- 3 years experience in HTML, JavaScript and jQuery.
- A Minimum of 3 years of Microsoft SQL server experience.
- Bootstrap experience.
- Understanding WSDL integration, DHA integration, CIPC integration and Banks integration is an added advantage.
Minimum Training:
- C#, .Net, Microsoft SQL / Microsoft development certification (added advantage), Project Management (added advantage)
Desired Skills:
- Mentioned Above