

Search by job, company or skills

Job Description: Embedded / Software Engineer (Middleware & Equipment Integration)
Department: Engineering
Location: Abu Dhabi (On-site)
Employment Type: Full-time
Reports To: Engineering Manager / CTO
About the Role
We are looking for an Embedded/Software Engineer to design and build a
middleware layer that connects our physical equipment to our software
platforms. You will own the bridge between hardware and software — reading
data from devices, translating protocols, and exposing clean, reliable interfaces
(APIs/services) that our applications can consume in real time.
This is a hands-on role: you will work directly with equipment, firmware, drivers,
and communication protocols on one side, and with our backend/application
teams on the other.
Key Responsibilities
• Design, develop, and maintain middleware that interfaces between
equipment (sensors, controllers, instruments, machines) and our in-house
software systems.
• Implement device communication over serial (RS-232/RS-485), USB,
Ethernet/TCP-IP, and industrial protocols (e.g., Modbus, CAN bus, OPC-UA,
MQTT, BACnet — as applicable to our equipment).
• Build and document APIs and services (REST, WebSocket, gRPC, or message
queues) that expose equipment data and controls to our software
applications.
• Develop data acquisition, buffering, and synchronization logic to ensure
reliable, low-latency, loss-tolerant communication.
• Parse and normalize vendor-specific data formats and SDKs into a unified
internal data model.
• Handle error recovery, reconnection logic, logging, and health monitoring
for connected devices.
• Collaborate with software/backend teams to define integration contracts,
and with hardware/field teams to troubleshoot equipment issues.
• Write unit/integration tests, simulators/emulators for equipment, and
maintain clear technical documentation.
• Support deployment on edge devices or industrial PCs (Linux/Windows),
including packaging, updates, and remote diagnostics.
Required Qualifications
• Bachelor's degree in Computer Science, Computer/Electronics Engineering,
or equivalent practical experience.
• 3+ years of experience in embedded systems, device integration, or systemslevel
software development.
• Strong programming skills in C/C++ and/or Python (Go, Rust, or C#/.NET a
plus).
• Hands-on experience with at least one hardware communication protocol:
serial (UART/RS-232/RS-485), Modbus, CAN, MQTT, OPC-UA, or vendor
SDKs.
• Experience designing or consuming APIs (REST/WebSocket/gRPC) and
working with message brokers (MQTT, RabbitMQ, Kafka, or similar).
• Solid understanding of multithreading/concurrency, real-time data
handling, and networking fundamentals (TCP/UDP, sockets).
• Proficiency working in Linux environments (shell scripting, systemd
services, debugging tools).
• Experience with version control (Git) and CI/CD practices.
Preferred / Nice to Have
• Experience building middleware, gateways, or SCADA/IoT edge software in
a production environment.
• Familiarity with databases (SQL, time-series DBs like InfluxDB/
TimescaleDB) for equipment data logging.
• Experience with Docker/containerized deployments on edge devices.
• Knowledge of firmware development (STM32, ESP32, ARM Cortex) or
ability to read firmware code to understand device behavior.
• Experience with equipment in [your industry — e.g., medical devices,
manufacturing, laboratory instruments, energy].
• Understanding of security for device communication (TLS, certificate
management, authentication).
What Success Looks Like (First 6–12 Months)
• Month 1–2: Understand our equipment fleet, existing software stack, and
integration pain points; deliver a middleware architecture proposal.
• Month 3–6: Ship a working middleware MVP connecting priority equipment
to our software with documented APIs.
• Month 6–12: Harden the middleware for production (monitoring, error
recovery, OTA/update strategy) and onboard additional device types.
How to Apply
Apply with your CV and a short note about a hardware–software integration project
you've built to. Code samples or GitHub links are welcome.
Job ID: 151874249