Design and develop robust embedded Linux applications and background services for industrial monitoring, control, diagnostics, communication, and data management on ARM-based platforms, ensuring reliable operation, maintainability, and production readiness.
Support Linux platform customization, BSP integration, image generation, peripheral enablement, boot configuration, and board bring-up activities using Yocto/OpenEmbedded, vendor SDKs, or Torizon-based development environments.
Develop and maintain reliable industrial communication services using Modbus RTU, Modbus TCP, RS485, UART, Ethernet, and TCP/IP while ensuring fault tolerance, communication integrity, and seamless integration with external monitoring and control systems.
Develop and maintain a lightweight embedded web interface for local configuration, commissioning, diagnostics, alarm review, and service access, including secure authentication, REST APIs, and real-time system visibility.
Implement alarm management, event handling, historical logging, and fault reporting functions that support system visibility, traceability, service diagnostics, controlled recovery, and long-term operational stability.
Integrate software with digital and analog I/O, serial interfaces, watchdogs, RTCs, and other hardware peripherals while supporting system diagnostics, troubleshooting, validation, and manufacturing test activities.
Develop and support local operator interfaces using Qt/QML or equivalent technologies, ensuring seamless integration between display functions, system status, alarms, diagnostics, and configuration workflows.
Apply software engineering best practices including code reviews, testing, debugging, version control, documentation, and release management to deliver maintainable and production-quality embedded software.
Qualifications
Bachelor’s or Master’s degree in Electrical Engineering, Computer Engineering, Embedded Systems, Software Engineering, or related field.
Minimum 7 years of embedded Linux or industrial embedded software experience.
Experience bringing at least one embedded Linux product from prototype to field deployment, production test, or customer validation.
Experience with industrial, power, automation, monitoring, gateway, data-acquisition, or field-I/O products is strongly preferred.
Must be able to work independently with limited supervision and provide clear architecture notes, trade-off analysis, and handover material.
Embedded Linux development on ARM-based SoM platforms.
Yocto Project, OpenEmbedded, BitBake, vendor SDKs, and Torizon OS.
C/C++ application development for embedded Linux systems.
POSIX programming including threads, sockets, timers, IPC, file I/O, and memory management.
Python and shell scripting for automation, diagnostics, testing, and deployment.
Linux system architecture, systemd services, journald, watchdogs, users/groups, networking, and security fundamentals.
U-Boot, Linux kernel fundamentals, device tree, pinmux configuration, and board bring-up.
Industrial communication protocols including Modbus RTU, Modbus TCP, RS485, UART, Ethernet, and TCP/IP.
Serial communication debugging and protocol analysis using Wireshark, tcpdump, libmodbus, Modbus Poll, QModMaster, and related tools.
Development of lightweight embedded web interfaces and REST APIs.