Support the software development process within the organisation by providing technical insights and direction throughout the SDLC. Participate in the determination and implementation of technologies, system architecture, coding standards and best practices with the various development teams. Develop and implement moderate to complex web applications and systems on one or more platforms, within a variety of different software system types. Provide quality assurance review and the evaluation of existing and new software products. Participate in the development of high-level system design diagrams for program design, coding, testing, debugging and documentation. Participate in mentoring junior developers.
- Advanced Diploma of 3 to 4 years / NQF level 7. Typically, a 3 to 4 year Diploma/Degree from a University of Technology or similar.
Skills and experience:
- Extensive knowledge of software development and its technologies.
- Successful track record of developing quality software products and shipping production ready software.
- Must understand and can speak to all aspects of the software development life cycle (e.g. requirements, analysis, design, implementation, testing, and documentation).
- Good understanding and working knowledge of SOLID design principles and Clean/Onion architecture.
- Extensive knowledge of C# and .Net Core using Visual Studio.
- Experience with ORM frameworks like Entity Framework, NHibernate or Dapper.
- Experience writing SQL queries for SQL Server or another Relational Databases.
- Good understanding of Web Services protocols such as REST, SOAP and API design for extensibility and portability.
- Experience with design, development and implementation of unit and scenario testing (nUnit / xUnit).
- Experience with version control using GIT or SVN.
- Experience with Scrum/Agile development methodologies.
- Experience with Azure DevOps boards, repos, pipelines, CI-CD is advantageous.
- Experience with Design Patterns like Repository, Factory, Singleton, etc patterns is advantageous.
- Experience with Kendo / Telerik is advantageous.
Key performance areas:
- Takes ownership of technical decisions and direction for one or many projects / teams that they are responsible for.
- Is able to manage demands on their time and shows a willingness and ability to delegate to team members where appropriate.
- Demonstrates an interest in innovating and improving the organisation’s technical awareness, depth and use of technology across the business.
- Participates in the evolution and improvement of best practices, standards, and policies as it relates to software development.
- Produces accurate, clean, scalable and maintainable architecture and code.
- Ability to work under pressure and meet deadlines.