Back-end Developers (C#,.Net) – Job Description
- 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
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)
- Design patterns and S.O.L.I.D. principles
- Strong understanding of object-orientated principles and practical implementation thereof
- 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.
One of the following degrees will be required:
- BSc, Bsc Eng
The individuals will be required to have the following experience:
- At least 5 years development experience in C# .NET
Must be in possession of a valid South African work permit or be a South African citizen.
To apply for this job please visit www.jcmconsult.co.za.