We are seeking a Senior C Programmer with strong embedded systems and Linux core development experience to join a strategic platform modernization program for a leading organization. The successful candidate will be responsible for migrating, rebuilding, and validating native C-based applications and libraries on a modernized RHEL-based platform, ensuring binary compatibility, performance, and long-term maintainability across mission-critical industrial control systems.
Ready to apply for roles like this?
Unlock the company name and direct application link. Subscribers get instant access to fresh jobs across Dubai, Abu Dhabi and Riyadh, many with visa support.
Unlock employer & apply directly
Key Responsibilities:
- Rebuild, validate, and optimize C-based modules and libraries against updated GCC and glibc versions on RHEL 10.
- Diagnose and resolve compiler, linker, and runtime compatibility issues during migration from legacy Linux platforms.
- Develop and maintain C and C++ code for embedded and Linux-based industrial applications.
- Write and maintain Python scripts for build automation, testing, deployment, and system orchestration.
- Perform low-level debugging using gdb, strace, ltrace, valgrind, and perf.
- Optimize application performance — memory management, multi-threading, IPC, and system calls.
- Integrate native C/C++ modules with higher-level application stacks and middleware layers.
- Develop and maintain Linux kernel modules, device drivers, and system-level utilities where required.
- Collaborate with platform, middleware, and application teams during staged rollout, testing, and cutover phases.
- Document code, build procedures, and operational runbooks for knowledge transfer and handover.
Required Skills & Experience:
- 8 to 12 years of professional experience in C programming on Linux platforms.
- Strong hands-on experience with C++ (C++11 / C++14 / C++17 standards).
- Proven proficiency in Python scripting for automation, tooling, and integration tasks.
- Deep working knowledge of Linux internals — process management, memory management, IPC, signals, sockets, file systems.
- Hands-on experience with embedded systems development — bare-metal, RTOS, or embedded Linux.
- Strong command of GCC, glibc, Make, CMake, and shared/static library management.
- Working knowledge of RHEL, CentOS, or other enterprise Linux distributions.
- Proficient with debugging and profiling tools — gdb, strace, ltrace, valgrind, perf.
- Experience with version control systems — Git.
- Solid understanding of multi-threaded programming, synchronization primitives, and concurrency patterns.
- Strong debugging and analytical skills with the ability to work on legacy codebases.
Preferred Skills:
- Hands-on experience migrating native C/C++ codebases between major Linux distribution versions (e.g., RHEL 7/8 → RHEL 10).
- Linux kernel module or device driver development experience.
- Real-time and deterministic systems experience (PREEMPT_RT, Xenomai, VxWorks).
- Familiarity with industrial communication protocols — Modbus, OPC UA, Profibus, EtherCAT, MQTT.
- Experience with hardware interfaces — UART, SPI, I2C, CAN, GPIO.
- Background in industrial automation, process control, SCADA, MES, or manufacturing IT.
- Exposure to CI/CD pipelines — Jenkins, GitLab CI, Ansible.
- Cross-compilation and toolchain management for embedded targets (ARM, x86).
- Experience with containerization (Docker, Podman) for C/C++ applications.
- Static analysis tools — Coverity, Klocwork, cppcheck.
This position offers an exciting opportunity for a seasoned C Programmer to contribute to the modernization of vital industrial systems.