About the Role
We are looking for aSenior Software Engineer / Technical Leadto design and develop asoftware gatewaythat performs protocol translation betweenModbus, MQTT, and ZMQ. This gateway will act as a critical bridge between industrial field devices and higher-level IIoT/edge systems, enabling reliable, real-time data exchange in industrial environments.
The ideal candidate is a hands‑on systems‑level engineer with deep expertise inC/C++, strong understanding ofindustrial communication protocols, and proven experience building robust, production‑grade software foredge computing / IIoTdeployments. This role requires both strong individual technical contribution and the ability to lead design decisions for a mission‑critical component of our industrial automation stack.
Key Responsibilities
- Design, develop, and maintain asoftware gatewayfor protocol translation betweenModbus (RTU/TCP), MQTT, and ZMQ.
- Implement and optimizeModbus master/slave communicationwith field devices (PLCs, sensors, controllers), ensuring reliability and low latency.
- Architect the gateway for performance, fault tolerance, and maintainability in resource‑constrained edge environments.
- Develop and maintain the codebase primarily inC/C++, following industry best practices for embedded/systems‑level software.
- Containerize the gateway application usingDockerfor deployment onLinux/Ubuntu-based edge devices.
- Collaborate with cross‑functional teams (firmware, cloud, DevOps, QA) to define integration points and data flow across the IIoT stack.
- Establish coding standards, review processes, and technical documentation for the gateway component.
- Troubleshoot and resolve issues related to protocol compatibility, network communication, and device connectivity in field deployments.
Required Skills & Experience
- 10+ yearsof professional software development experience, with strong command overC and C++(modern C++ preferred).
- Proven experience inedge computingorIndustrial IoT (IIoT)application development.
- Hands‑on experience implementing or integratingModbus(RTU and/or TCP) communication — this is acritical requirement.
- Working knowledge ofMQTTandZMQ (ZeroMQ)messaging protocols and their use in distributed/edge architectures.
- Strong experience developing and deploying applications onLinux/Ubuntuenvironments.
- Practical experience withcontainerization technologies (Docker)for building and deploying edge applications.
- Solid understanding of networking fundamentals, multi‑threading, and real‑time/low‑latency system design.
- Strong debugging, performance tuning, and problem‑solving skills in production environments.