About the Company
Our customer is building a SCADA platform for Building Management Systems (BMS) from the ground up — a robust industrial solution with a cloud version and a local (on-premise) version. The project involves multiple APIs, databases, real-time communication with physical controllers, and a distributed architecture designed for scale and resilience.
About the Role
Duration: 12-18 Months
Tech stack: .NET 10, React, PostgreSQL, Keycloak, RabbitMQ, gRPC, Docker, Caddy.
Responsibilities
- Design and develop APIs in .NET 10 for communication with BMS controllers and client interfaces
- Implement and maintain async messaging pipelines via RabbitMQ and real-time communication via gRPC
- Contribute to the platform's security architecture, integrating Keycloak for authentication and authorization
- Build the installer and containerised version of the on-premise solution (Docker)
- Collaborate with the front-end team in React to define API contracts and ensure smooth integration
- Participate in architecture decisions for both the cloud and local versions
- Work with .NET Aspire for local orchestration during development
Qualifications
- 2–5 years of back-end development with .NET (C#)
Required Skills
- Non-negotiable: solid command of .NET and hands-on experience building APIs. The rest of the stack can be learned.
- Experience building and consuming REST APIs or gRPC services
- Familiarity with async messaging systems (RabbitMQ, Kafka, or similar)
- Knowledge of PostgreSQL and relational data modelling
- Experience with Docker and application containerisation
- Understanding of API security patterns (OAuth2/OIDC is a plus)
- Background in industrial or automation systems (SCADA, OPC-UA, BACnet) is a strong differentiator
Preferred Skills
- Experience with .NET Aspire or microservices-oriented development
- Knowledge of Keycloak or other identity providers
- Experience building installers or distributing on-premise software
- Background in embedded systems, IoT, or industrial automation
- React experience for front-end collaboration