Senior Software Engineer

Permanent - Cape Town 
Qualifications & Experience 
• Bachelor’s Degree in Computer Science, Software Engineering, Information Systems, or a related field, or equivalent practical experience.
• Minimum of 5 years’ professional software development experience in designing and building scalable applications.
• Proven experience designing, developing, documenting, testing, and implementing large-scale distributed systems.
• Strong experience with C#, .NET Core, and ASP.NET for enterprise application development.
• Experience working with containerized environments using Docker and orchestration tools such as Kubernetes.
• Solid understanding of microservices architecture, message queueing systems, and distributed application design.
• Experience working with relational databases such as Microsoft SQL Server and PostgreSQL.
• Demonstrated experience in system analysis, performance optimization, and troubleshooting complex software issues.
• Experience working in agile or iterative development environments.
• Proven ability to mentor junior developers and contribute to technical leadership within engineering teams.
• Strong communication skills with the ability to translate technical concepts to both technical and non-technical stakeholders.
Responsibilities
• Design, develop, implement, and maintain robust, scalable software solutions across the technology stack.
• Take ownership of software services and applications, ensuring reliability, performance, and maintainability at scale.
• Analyse business requirements and translate them into effective technical solutions.
• Participate in the full software development lifecycle, including design, development, testing, deployment, and ongoing support.
• Identify potential technical risks early in the development lifecycle and proactively design solutions to mitigate them.
• Collaborate with cross-functional teams including product owners, analysts, and other engineering teams to deliver high-quality software solutions.
• Conduct system analysis to identify opportunities for operational improvement and recommend enhancements to systems, tools, and processes.
• Implement best practices in software development, code quality, security, and system performance.
• Maintain clear documentation for systems, services, and development processes.
• Participate in code reviews and ensure adherence to coding standards and development guidelines.
• Support production systems and assist in diagnosing and resolving technical issues when required.
Core Technical Skills
• C#
• .NET Core
• ASP.NET
• Docker
• Kubernetes
• Microservices architecture
• Message Queueing technologies
• Microsoft SQL Server
• PostgreSQL
Competency
• Analytical Thinking
Ability to evaluate complex technical problems and design practical, maintainable, and scalable solutions.
• Problem Solving
Strong troubleshooting abilities with a structured approach to diagnosing and resolving system issues.
• Strategic Thinking
Ability to anticipate potential system or development challenges and proactively implement solutions.
• Collaboration & Teamwork
Works effectively with cross-functional teams, sharing knowledge and contributing to collective problem-solving.
• Leadership & Mentorship
Supports the development of junior and intermediate engineers through coaching, guidance, and knowledge sharing.
• Communication
Excellent written and verbal communication skills with the ability to explain technical concepts clearly.
• Accountability & Ownership
Takes responsibility for systems and services, ensuring quality, stability, and performance.
• Adaptability & Continuous Learning
Stays current with emerging technologies, industry trends, and best practices in software engineering
    © 2024 Rough Diamonds Studio. All rights reserved.