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

  1. Coding and development

  2. Utilise established development tools, guidelines, and methods for handling development task

  3. Maintain detailed documentation and project files concerning progress, problems, and requiredchanges, and provide regular reports on such to the ICT Team and Management.
  4. Develop at all stages of the interface component design from conception through to execution
  5. Develop reusable, efficient, and scalable code
  6. Writing new code or modifying code to enhance system functionality
  7. Develop new software applications.
  8. Develop real-time transaction processing systems that can support millions of transactions daily
  9. Complete coding & development in line with agreed timelines.
  10. Develop/ Build efficient and secure API/integration with other systems (internal & external systems)
  11. Lead NCC development and automation projects.

  12. Code Quality Management

  13. Adhere to the defined procedures for code management, code reviews, coding standards, naming conventions and security standards

  14. Perform testing to ensure any changes made to the system are of a high standard and the system hasn’t regressed
  15. Perform code reviews to ensure current code meets quality and best practice standards
  16. Ensure code version control is in line with best practices standards/
  17. Adhere to change control processes
  18. Help maintain code quality, performance, and application responsiveness
  19. Create unit and integrated system tests to show that the developed functionality works as intended
  20. Create and execute functional test scenarios (dev testing)

  21. Analysis & Design

  22. Assist in the creation of user story definitions.

  23. Analyse system change requests to provide work estimates
  24. Convert user stories into a system design that addresses a business problem (fit-for-purpose solutions)
  25. Design application user interfaces that are fresh (modern) and exciting
  26. Design APIs and external system interfaces for integration with third-party applications
  27. Participate in research and innovation, analyze internal systems against current technology trends and provide recommendations.
  28. Maintain knowledge of current and emerging technologies/products/trends related to digital innovative solutions development

  29. Database Design and Management

  30. Design database structures/ architecture to provide for efficient performance and security controls.

  31. Monitor system databases to identify and resolve issues.
  32. Ensure data integrity and database security.
  33. Optimise databases for high performance
  34. Write queries to extract data and create reports

  35. Support and maintenance

  36. Monitor everyday activities on the system and provide support to end-users.

  37. Evaluate and improve application performance and high-availability features
  38. Perform root cause analysis on bugs to find and fix the cause of a problem in an integrated system
  39. Adhere to system change control process
  40. Communicates status and escalates risks and issues appropriately and timeously
  41. Ensure application management audit report issues are addressed
  42. Compile monthly reports for the area of responsibility and submit them to senior management
  43. Resolve problems across multiple platforms (Dev, QA, Production, etc)
  44. Attend to support tickets with the agreed SLA targets.
  45. Collaborate with the infrastructure team(s) to solve technical issues affecting software applications.

  46. Training & People Management

  47. Train and mentor junior developers and interns

  48. Perform post-development system training for NCC staff
  49. Develop system documentation (e.g Manuals & SOPs)
  50. Facilitate end-user training
  51. Performance management junior developer(s)
  52. Participate in the development and implementation of the NCC software application-related policies and procedures.

  53. Financial & Supplier Management

  54. Contribute to the ICT budget formulation by determining needs for the area of responsibility.

  55. Supplier management for the area of responsibility to ensure the NCC gets value for money for contracted services.

  56. ICT Continuity & Security

  57. Participate in the software applications’ risk identification on regular basis.

  58. Identify and communicate to management software application project risks.
  59. work with the infrastructure team to deploy, test and manage software patches that may affect the NCC software application.
  60. Work with Database Administrator(s) to ensure databases are backed up and can be restored.
  61. 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

Learn more/Apply for this position