Senior Software Engineer / Technical Lead
About the Role
We are looking for a Senior Software Engineer / Technical Lead to design and develop a software gateway that performs protocol translation between Modbus, 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 in C/C++, strong understanding of industrial communication protocols, and proven experience building robust, production-grade software for edge computing / IIoT deployments. 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 a software gateway for protocol translation between Modbus (RTU/TCP), MQTT, and ZMQ.
Implement and optimize Modbus master/slave communication with 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 in C/C++, following industry best practices for embedded/systems-level software.
Containerize the gateway application using Docker for deployment on Linux/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+ years of professional software development experience, with strong command over C and C++ (modern C++ preferred).
Proven experience in edge computing or Industrial IoT (IIoT) application development.
Hands-on experience implementing or integrating Modbus (RTU and/or TCP) communication — this is a critical requirement.
Working knowledge of MQTT and ZMQ (ZeroMQ) messaging protocols and their use in distributed/edge architectures.
Strong experience developing and deploying applications on Linux/Ubuntu environments.
Practical experience with containerization 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.
Skills Must Have
- Mandatory Science graduate

