Job Description Responsibility Areas

The developers are responsible for building and maintaining our product and systems platform and must be capable of contributing at every level of the SDLC, including:
– Critically analyse business requirements in order to produce a technical design and collaborate with business and system analysts on issues and challenges
– Perform system and data architecture design – designing for performance, scalability, and maintainability
– Develop and maintain systems that achieve the business goals and focus on quality and testability
– Drawing up test plans, understanding scenarios and furthering quality automation goals – Planning of configuration management and deployment
– Maintaining production systems and software
– Performing continuous analysis and improvement on existing development processes and procedures
– Engage in active knowledge-share, code review and team mentoring where appropriate Skill Sets The following key skills and experience will be looked for in the candidate:
– At least 5 years of experience in end-to-end application development (data model, architecture, database, application and operational components).
– A relevant 4-year university degree, preferably in Software Engineering or Computer Science.
– Complete understanding of and experience in using Microsoft .NET and object-orientated C# for systems and web development.
– Complete understanding of and experience in Microsoft SQL Server with excellent SQL query abilities.
– Complete understanding and experience in data modelling and architecture for optimal database structure design.
– Must have excellent analytical skills and the ability to identify problems, gaps and contradictions.
– Able to pick up new skills and knowledge through self-learning.
– Able to understand the need for trade-off decisions and knowing how to make the correct trade-offs in collaboration with their team.

Technologies and practices
The ideal candidate will need solid experience in the following technologies and practices:
– Either .NET 5 or .NET Framework 4.7.2 (we are migrating to .NET 5)
– C#
– Design patterns and S.O.L.I.D. principles
– Strong understanding of object-orientated principles and practical implementation there of
– Asynchronous coding practices using the async modifier and await keyword
– Unit testing and test-driven development (https://en.wikipedia.org/wiki/Unit_testing)
– Test frameworks like NUnit, xUnit, and MSTest
– Dependency injection containers such as Autofac
– REST API concepts and best practices
– Either ASP.NET Core or ASP.NET Web API 2 (we are migrating to .NET 5)
– MongoDB and NoSQL principles
– MongoDB .NET Driver
– Microsoft SQL Server 2012+
– Entity Framework 6
– Message queuing architectures
– Message patterns (command, event, request and response)
– Idempotent message handling Personality and disposition The candidate must exhibit the following key personality traits:
– Have high work ethic and be able to work under pressure, with emphasis on quality and attention to detail.
– Be able to work independently with little supervision when necessary but understands the value of team work, in an environment that strongly encourages team work.
– Have proven ability to manage concurrent and complex tasks on a regular basis.
– Possess strong problem-solving skills and decision-making ability, stepping up and taking initiative when necessary.
– Have excellent written and oral communication skills, follow-through and attention to detail.
– An openness to work with others and build on team input. The individuals cannot be myopic in their outlook. Strong teamwork will be required.
– Be willing to admit when wrong, owning mistakes and seeing them through to correction. Is not driven by ego but rather the success of their team.
– A drive to get things done, irrespective of obstacles. The individual must be committed to meeting any deadline that they commit to, regardless of obstacles.
– An ability to see possibilities beyond the obvious. Innovation is a key dimension.
– The ability to deal with complexity and migrate between detail and high level requirements.
– They must have a pride in their work and a desire to deliver perfection at all times.
– They must have a passion for technology and technical developments.
– They must read broadly and keep abreast of the latest technology trends.
– The individual must have a strong desire for self learning and be prepared to make the investment in learning and self-development.

Education Requirements
One of the following degrees will be required:
– BSc, Bsc Eng Experience Requirements
The individuals will be required to have the following experience:
– At least 5 years development experience in C# .NET Reporting Structure The individuals will report to the Development Manager.

Other Requirements
Must be in possession of a valid South African work permit or be a South African citizen.

Desired Skills:

  • C#
  • Either
  • NET 5 or .NET Framework 4.7.2
  • Design patterns and S.O.L.I.D. principles
  • – BSc
  • Bsc Eng
  • JavaScript
  • Server-side
  • Nodejs

Desired Work Experience:

  • 5 to 10 years Software Development

Desired Qualification Level:

  • Degree

About The Employer:

A dominant local SaaS provider in the Customer Experience industry with a growing international presence. Using modern technology, research methods and analytical techniques, to be able to provide a clear view of what is delighting and disappointing customers. The Companies software platform consists of various modules and is highly configurable. The various modules assist in being able to provide an end to end view of the drivers of enterprise performance, present these to the responsible staff members, drive resolution of customer complaints as well as driving operational improvements.

Learn more/Apply for this position