Senior Developer (C# .Net)
IT – Software Development
Durban – KwaZulu Natal – South Africa
ENVIRONMENT:
A forward-thinking company specializing in cost-effective and innovative business solutions, based in KwaZulu-Natal, is seeking a Senior Developer to join their dynamic IT team. This role requires close collaboration with both the IT department and business stakeholders to design, develop, and implement high-quality systems that enhance business processes and operational efficiency. The ideal candidate will have a strong development background, preferably within the Microsoft technology stack, and extensive database expertise. They should be proficient in identifying and resolving low-level performance-related issues in both relational and document-based databases, with a preference for Microsoft SQL Server and MongoDB. This is an excellent opportunity for a seasoned developer who thrives in a collaborative environment and is passionate about building scalable, efficient, and high-performing software solutions.
DUTIES:
Technical:
- Add continuous value by efficiently designing and delivering working software in line with on-going business requirements.
- Accountable for ensuring that the optimal technical solutions are implemented.
- Provide input to the architectural design of the company’s solutions.
- Build effective software that facilitates the achievement of business objectives.
- Maintain current knowledge of technology landscape and developments.
- Keep abreast of cloud technologies and implement appropriate solutions to leverage these technologies where applicable.
- Constantly review the systems for problem areas, devising improvements to the system that will allow for future enhancements with minimal impact.
- Ensure that high technical standards are implemented and carried out in all coding practices and IT processes.
- Assist in code reviews, ensuring that code adheres to high standards of efficiency and technical quality.
- Ensure that quality is continually built into the systems and processes.
- Contribute to a culture of continuous integration and deployment.
- Assist the team when complex technical solutions inhibit delivery.
- Suggest and discuss new software and techniques with the team.
- React quickly to incidents, delegating to the team where necessary, and ensuring root cause analysis is carried out and implemented to prevent repeat occurrence of issues.
- Contribute to the continual improvement of the existing code base through a disciplined process of refactoring where required to eliminate technical debt.
- Create & maintain sufficient quality documentation of systems in line with agreed standards.
Operational:
- Negotiate technical trade-offs with the IT Team with regards to the practicality of solutions vs. the cost and time required for those solutions.
- Assume responsibility for the achievement of Sprint objectives.
- Adhere to technology standards and communicate technical information to the Development Team.
- Treat security as a first-class concern
- Assist in the deployment of changes to production environments.
People:
- Mentoring and guiding Junior Developers.
- Engaging in healthy debate within the Development team, constructively calling each other out where appropriate.
- Engage in a culture of accountability within the Development team.
- Working effectively in an agile environment and ensuring that both the Company values and the values of agile are lived in the Development team.
REQUIREMENTS:
Knowledge, Skills:
- Strong development background (preferably Microsoft stack)
- Strong database knowledge with expertise in low level performance-related problems in both relational and document databases (preferably Microsoft SQL Server and MongoDB).
- Thorough knowledge of web-based systems, preferably with extensive JavaScript, JavaScript framework, and .NET (varying frameworks) experience.
- Knowledge of distributed systems and related solution architectures
- Knowledge of message busses and event streaming (e.g., Kafka).
- Knowledge of virtual environments and containerisation is beneficial.
- Thorough understanding of Agile and scrum processes.
- Pro-active with ability to constantly innovate and improve processes.
- Thorough understanding of design patterns and concepts.
- Thorough understanding of testing approaches (e.g., TDD, BDD)
- Knowledge of automated testing and testing tools (e.g., Cypress).
- Facilitation and collaboration skills.
Education / Experience:
- Completion of an appropriate degree (Computer Science, Engineering, Information Systems, Information Technology or equivalent) is required.
- At least 5 years’ relevant and appropriate previous experience is required.
ATTRIBUTES:
- Excellent problem solving and decision-making skills.
- Ability to mentor junior staff.
- Excellent communication skills (written and verbal).
- People-orientated; confident but diplomatic.
- Future focused.
- Passion for technology.
- Quality focused.
- Results driven.
- Positive, can-do attitude.
- Collaborative approach.
- Customer orientation