Backend Developer (C#, React, ASP.NET Core) (Centurion)

IT – Software Development
Pretoria/Centurion – Gauteng – South Africa

ENVIRONMENT:
A provider of cutting-edge Digital Solutions based in Centurion is looking to employ a talented Backend Developer to provide technical leadership and expertise in the design, development, and maintenance of software applications. You will guide and mentor Junior team members, make strategic technical decisions, and ensure high-quality deliverables. You will also contribute to architectural design, drive the implementation of complex software solutions & be involved in code review, performance optimization, and continuous improvement of development processes. The ideal candidate will require a Masters’s or Bachelor’s Degree in Computer Science/Software Engineering, or a related field with 5-7 years of professional experience in Software Development, with a focus on progressively more challenging and complex projects. Your tech toolset should include C#, React, ASP.NET Core, SQL, AWS, Azure, or Google Cloud Platform.
 
DUTIES:
  • Provide technical leadership and guidance to the Development team.
  • Take ownership of complex technical tasks, mentor Junior Developers, and serve as a point of escalation for technical issues.
  • Contribute to the design and architecture of software systems.
  • Analyse requirements, propose scalable and robust solutions, and ensure that the software design aligns with best practices and industry standards.
  • Participate in coding and development activities, working on critical and challenging components of the software.
  • Write clean, efficient, and maintainable code, ensuring adherence to coding standards and quality guidelines.
  • Lead code reviews, providing feedback and ensuring the overall code quality of the Development team. They enforce best practices, conduct automated and manual testing, and ensure that software meets the highest standards of quality and reliability.
  • Responsible for troubleshooting and resolving complex technical issues.
  • Analyse and diagnose problems, identify root causes, and propose effective solutions or workarounds to ensure the smooth functioning of the software.
  • Collaborate closely with cross-functional teams, including business stakeholders, Designers, Testers, and Project Managers.
  • Actively participate in discussions, provide technical insights, and foster a collaborative and productive work environment.
  • Contribute to technical documentation efforts, ensuring that relevant documentation, such as system architecture, design specifications, and API documentation, is accurate, up-to-date, and accessible to team members and stakeholders.
  • Optimize software performance by identifying and addressing bottlenecks.
  • Analyse system performance, conduct profiling, optimize code, and make architectural recommendations to improve efficiency and scalability.
  • Stay updated with emerging technologies, trends, and industry practices.
  • Conduct research, evaluate new tools and frameworks, and propose innovative solutions to improve the Software Development process or address business challenges.
  • Take on Project Management responsibilities, including project planning, estimation, and coordination of tasks. Ensure that projects are delivered on time, within budget, and meet quality expectations.
  • Provide leadership and guidance to the development team. You may lead and manage a team of developers, assign tasks, and ensure the successful completion of projects. You act as a mentor and coach, providing technical guidance and support to junior developers, helping them grow their skills and achieve their potential.
 
REQUIREMENTS:
Qualifications –
  • A Masters’s or Bachelor’s Degree in Computer Science, Software Engineering, or a related field is typically required.  
 
Experience/Skills –
  • At least 5-7 years of professional experience in Software Development, with a focus on progressively more challenging and complex projects. They should have a proven track record of successfully delivering software solutions and taking a leadership role in development projects.
  • A deep understanding of Software Development principles, including proficiency in multiple programming languages relevant to their field, such as C#, React, ASP.NET Core.
  • Knowledge of software architectural principles and design patterns, such as MVC (Model-View-Controller), MVVM (Model-View-ViewModel), and SOLID (Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion).
  • Understanding of database concepts, including relational databases (e.g., SQL), as well as knowledge of data modeling and query optimization techniques.
  • Possess expertise in software architecture, design patterns, algorithms, automated Unit Testing, Domain Driven Design(DDD) and data structures.
  • Proficiency in designing scalable, reliable, and high-performance systems, including distributed systems, microservices, and cloud-based architectures (e.g., AWS, Azure, or Google Cloud Platform).
  • Proficiency in implementing effective testing strategies, including Unit Testing, Integration Testing, and Automated Testing, to ensure software quality and maintainability.
  • Familiarity with advanced technologies, frameworks, and tools specific to their domain is often expected.
  • Experience collaborating with cross-functional teams, providing technical guidance, and making strategic decisions to drive successful software projects.
  • Experience in troubleshooting and debugging complex software issues.
  • Capability to conduct thorough code reviews, provide constructive feedback, and mentor junior team members, promoting best practices and knowledge sharing within the Development team.
 
Advantageous –
  • Higher level of education or specialized Certifications can be an advantage, particularly for more senior or specialized roles.
  • A portfolio or examples of past projects that demonstrate technical expertise, leadership, and the ability to deliver high-quality software solutions can be advantageous. It showcases the depth and breadth of their experience and provides evidence of their capabilities.
 
ATTRIBUTES:
  • Demonstrated leadership skills and the ability to lead and mentor a team.
  • Effective communication and teamwork are crucial for this role.
  • Strong problem-solving and critical thinking skills.
  • Able to analyse complex technical challenges, propose innovative solutions, and make sound decisions.
  • A strong commitment to continuous learning and staying updated with industry trends, emerging technologies, and best practices.
  • Actively seek opportunities for professional development and be able to apply new knowledge to their work. 
  • Demonstrate exceptional problem-solving abilities and the ability to approach complex problems strategically and efficiently. This can be assessed through technical interviews, coding assessments, or by reviewing their previous projects and achievements. 

+ 27 (0) 21 741 0400