
Senior .Net Developer - NL
- Remote
- Johannesburg, Gauteng, South Africa
- ZAR 550 - ZAR 750 per hour
- DVT Netherlands (DVTN)
Job description
DVT is one of the top software development companies on the continent. Our software engineers are consulting on cutting edge applications at the top companies in South Africa, as well as consulting globally.
You will have the opportunity to work alongside some of the most established developers in the country with the latest technologies. DVT is committed to continuously training our staff and we are very proud of our culture of learning, from internal speaking and training to sponsoring a variety of technical events from DevConf to GDG.
Interested in Azure, Microservices/SOA, .Net, Enterprise Integration? DVT is currently hiring Intermediate to Senior .Net Developers that are passionate about software development to assist our clients with turning their ideas into working software fast.
Job requirements
We are looking for a skilled .NET Backend Developer to join a product‑focused engineering team building a modern, cloud‑native platform. You will work on a modular monolithic .NET backend that powers a Flutter mobile application, real‑time chat, background jobs, notifications, analytics, and AI‑driven features.
This role is ideal for an engineer who enjoys clean architecture, strong domain modelling, Azure services, and scalable backend systems, while collaborating closely with frontend, mobile, and product teams.
Key Responsibilities
Backend & API Development
Design, develop, and maintain a modular monolithic backend API in .NET (C#).
Build and evolve RESTful APIs consumed by a Flutter mobile application.
Implement business logic, domain rules, validation, and integrations in a clean, testable manner.
Own backend features end‑to‑end, from design through to production support.
Architecture & Cloud
Work with Azure Front Door + WAF for secure, global API access.
Integrate with Auth0 for authentication and authorization (OIDC / OAuth2).
Design and maintain integrations with:
Azure Web PubSub (real‑time 1:1 chat via WebSockets)
Firebase Cloud Messaging (FCM) for mobile push notifications
Blob Storage for file and object storage
Azure Key Vault for secure secret management
Data & Background Processing
Design and maintain PostgreSQL schemas as the system of record for structured data (including messages).
Build and manage background jobs and schedulers inside the monolith for:
Scheduled resets and weekly grouping
Notifications and automated processes
Ensure data integrity, performance, and scalability.
AI & Product Features
Integrate with an AI module and provider (Azure AI / Foundry) to support:
Personalized coaching responses
Schedule adjustments
Agent‑based workflows with evals and guardrails
Collaborate with product and AI teams to safely roll out AI‑powered features.
Observability & Quality
Implement robust logging, monitoring, and error tracking using:
Sentry
Azure Logs & Metrics (Log Analytics, OpenTelemetry)
Participate in debugging, incident resolution, and performance optimisation.
Write unit and integration tests to ensure backend reliability and maintainability.
Technical Skills & Experience
Required
Strong experience with .NET / C# in backend development.
Experience building and maintaining REST APIs.
Solid knowledge of PostgreSQL (schema design, indexing, queries).
Experience with Azure‑based architectures or strong cloud fundamentals.
Understanding of authentication and authorization concepts (OIDC / OAuth2).
Experience working with background jobs, schedulers, or asynchronous processing.
Familiarity with observability tools (logging, monitoring, error tracking).
Nice to Have
Experience with modular monolith or domain‑driven design approaches.
Exposure to real‑time systems (WebSockets, Pub/Sub).
Experience integrating push notifications (FCM / APNs).
Hands‑on experience with Azure Web PubSub, Azure Front Door, or Key Vault.
Exposure to AI integrations or working alongside AI/ML teams.
Experience working in product‑led, mobile‑first environments.
Who we are:
or
All done!
Your application has been successfully submitted!
You've already applied for this job
We appreciate your interest in this position. Unfortunately, you have already applied for this job.
