As a Software Engineer (Intermediate, C#) at Syspro, you will own the design, build, and delivery of components and features within our C#/.NET platform, contributing meaningfully to architecture and design decisions. You will navigate ambiguity and complexity with minimal oversight, mentor junior engineers, and help drive engineering quality and performance within your team. This is a hands-on engineering role with growing expectations for technical ownership, sound design judgement, and peer mentoring.
- Design, build, and maintain components and services in C#/.NET, deployed using Docker and Kubernetes on Azure, that meet Syspro’s quality and performance expectations.
- Own components and features end-to-end: analysis, design, implementation, testing, deployment, and ongoing support.
- Apply distributed-systems thinking (resilience, scalability, cost optimisation) to the components and services you own.
- Debug and resolve issues in unfamiliar or complex parts of the codebase.
- Contribute to design reviews and architecture discussions, bringing sound technical judgement to trade-off decisions.
- Apply SOLID design principles across components, and factor fault-tolerance and capacity planning into your designs.
- Design reusable C#/.NET components and patterns that other engineers can build on.
- Design relational data schemas and optimise SQL queries for performance and data integrity.
- Contribute to event-driven integrations (e.g., using RabbitMQ or equivalent) where relevant to the services you own.
- Consider SaaS delivery factors, such as scalability and multi-tenancy, when designing components and features.
- Promote sound test strategy and help the team improve automated test coverage.
- Mentor junior engineers on code quality and clarity through reviews and pairing.
- Customise Azure DevOps boards, automate workflows, and manage build and release pipelines.
- Resolve merge conflicts and rebasing issues, and keep CI/CD pipeline configuration up to date.
- Refactor COBOL-related components as part of Syspro’s legacy modernisation work, under senior engineering guidance.
- Collaborate with Product, Architecture, Quality, and other engineering teams to deliver outcomes.
- Clarify requirements, edge cases, and trade-offs with Product and other stakeholders, and help prioritise features based on business impact.
- Lead technical discussions within the team and handle disagreements constructively.
- Coach teammates on Agile best practice and facilitate syncs with other teams.
- Own delivery of features that span team boundaries, seeing them through from design to production.
- Navigate ambiguous requirements and make sound trade-off decisions with minimal oversight.
- Support technical decisions in planning sessions.
- Drive retrospectives and continuous improvement, and help decompose epics into deliverable, well-scoped work.
- Support peers’ growth by helping them plan their own development.
- Identify and drive improvements in how the team works together.
- Surface technical risks, dependencies, and impediments early.
RequirementsMinimum Level of Education
- Bachelor's degree in relevant field (e.g. Computer Science, Software Engineering, Information Systems etc.)
Beneficial Qualifications
Relevant certifications
Minimum Experience
- 4 - 6 years of software development experience, with demonstrated ownership of components or technical areas
- Professional experience in C#/.NET (backend and/or services), including designing reusable components and patterns
- Experience navigating ambiguity and making trade-off decisions with minimal oversight
- Solid SQL experience, including relational schema design and query optimisation
- Practical experience working in an agile delivery environment and using Azure DevOps (or equivalent), including managing build and release pipelines
- Working experience with containerisation (Docker) and orchestration (Kubernetes) on Azure
Beneficial Experience
- Experience in enterprise software, ERP, SaaS, or complex multi-team product environments
- Exposure to legacy modernisation work, including COBOL-related domains
- Experience with distributed systems concepts (resilience, scalability, cost optimisation) and message-based/event-driven architectures (e.g., RabbitMQ)
- Front-end exposure (React) and/or component-based development
Security and compliance patterns relevant to enterprise software
Special Skills and Knowledge
- Strong understanding of engineering quality: coding standards, reviews, and testing practices
- Strong communication skills, comfortable leading discussions and handling disagreements constructively
- Ownership mindset: sees cross-functional deliverables through from design to delivery
- Strong problem-solving skills, comfortable debugging unfamiliar or complex code
- Comfortable navigating ambiguity and making sound trade-off decisions with minimal oversight
- Collaborative team player who coaches others on Agile practice and facilitates cross-team coordination
Supports peers’ growth through mentoring and constructive feedback, and looks for ways to improve how the team works together
Benefits
- 25 annual leave days
- 30 days paid sick leave over 3-year cycle
- Hybrid working environment (3 office days as determined by the function/ manager)
- Pension 10%
- Medical aid
- Life insurance
- Income continuation protection
- Funeral Benefit
- Provident Fund Admin Fee
- Global Education Protection
- Bonus/ commission programmes
- Maternity: 6 months at half pay
- Paternity: 2 weeks full pay
- Employee Assistance Programme
- Free Barista Coffee Daily
- Gym Facilities
- Free Daily Lunch
- Free Fruit on a Tuesday & Thursday
- Free Refreshments & Snacks Daily