Affinity Health brings private health care to you and your family at affordable rates. Our health insurance solutions are well priced, so that you and your loved ones can afford quality private health services.
We offer you all South Africans:
Day-to-Day Cover: from R379 p/pm
With offers unlimited doctor visits, acute and chronic medication, radiology and pa...
Read more about this company
On behalf of our client Affinity is seeking a Principal Software Engineer on a permanent basis. This position is responsible for designing, executing, assessing, securing, and troubleshooting software programs, including coding, configuring, and documenting specifications throughout the project life cycle. It also involves day-to-day operations and off-hours support for production issues. The Principal Software Engineer oversees multiple feature teams, providing guidance and reinforcing secure software development principles.
Responsibilities:
Collaborate with Architecture Team on development of overall application strategy, standards, capability needs, and lifecycle management
Evaluates priorities, design goals, risks, options, and compromises and recommends the most suitable approach.
Familiar with architectural patterns contributes to the production of secure, reliable, manageable, and high-performance solutions.
Perform architectural modelling to assist in determining solution efficacy.
Performs estimating, prioritizing, planning and coordinating of work to reliably and consistently deliver according to plan.
Direct research on emerging application development software products, languages, and standards in support of procurement and development efforts.
Performs detailed technical design of proposed solutions.
Evaluates relevant risks and determines mitigation strategies.
Identify requirements and manage the procurement process and vendor selection for new technologies.
Develop and review software programs, code, and unit tests for new and existing applications and systems, ensuring functional and non-functional requirements are met.
Develop, and maintain supporting documentation as required.
Gather statistics and prepare and write reports on the status of the programming process for discussion with management and/or team members.
Recommend, schedule, and perform software improvements and upgrades for optimal performance of company workstations.
Perform troubleshooting and root cause analysis in support of incident and problem management. Recommended options to address identified issues.
Participates in development, implementation, and maintenance of plans to ensure continuation of critical operations in the event of a disaster or interruption.
Provides ongoing system maintenance and monitoring to ensure adherence to SLAs.
Qualifications:
10+ years of relevant experience in software development, with expertise in .NET/.NET Core/ASP.NET/MVC, JavaScript/Typescript, Node.js/Express, and MS SQL Server.
Extensive experience with Azure DevOps, Docker, Message Brokers (RabbitMQ), and NoSQL (MongoDB).
Proficient in automated software engineering, including CI/CD processes, testing frameworks such as jMeter, xUnit, Selenium, and tools like Postman for API testing.
Strong leadership and coaching skills to provide oversight and guidance across technical teams.
Demonstrated ability in project management and agile methodologies, ensuring project alignment and team performance.
Expertise in developing web-based applications and API services, with a focus on microservices and distributed system architectures.
Deep understanding of AAA (authentication, authorization, access control) principles and related technologies such as OpenID Connect, SAML, OAuth.
Experience in architectural design and modeling with an emphasis on secure coding practices to minimize the risk of unauthorized access and information disclosure.
Knowledgeable in functional, unit, and shift-left testing principles and methodologies.