Track This Job
Add this job to your tracking list to:
- Monitor application status and updates
- Change status (Applied, Interview, Offer, etc.)
- Add personal notes and comments
- Set reminders for follow-ups
- Track your entire application journey
Save This Job
Add this job to your saved collection to:
- Access easily from your saved jobs dashboard
- Review job details later without searching again
- Compare with other saved opportunities
- Keep a collection of interesting positions
- Receive notifications about saved jobs before they expire
AI-Powered Job Summary
Get a concise overview of key job requirements, responsibilities, and qualifications in seconds.
Pro Tip: Use this feature to quickly decide if a job matches your skills before reading the full description.
If you love squeezing performance out of constrained hardware and making systems rock solid, this is your stage.
Your Responsibilities
- Design, build, and maintain minimal Linux OS images using Buildroot (toolchains, packages, BusyBox, overlay/readonly rootfs, init/system services).
- Configure and patch the Linux kernel (device tree, drivers, kernel modules) for ARM based platforms.
- Develop BMS protocol stacks and device drivers in C/C++ (e.g., BACnet, Modbus/RTU & TCP, MQTT/OPC UA gateways), optimised for both Linux and Windows environments.
- Develop embedded firmware for ARM-based microcontrollers and embedded Linux systems, across bare-metal and RTOS environments.
- Implement robust communication over RS-485, TCP/UDP sockets, and serial COM ports; ensure interoperability and timing compliance.
- Create cross-platform builds with CMake (GCC/Clang/MSVC), automate builds and tests in CI/CD, and maintain reproducible toolchains.
- Write clear technical documentation (build guides, flashing procedures, protocol
Requirements
Preferred Qualifications:
- Bachelor’s degree in Computer/Software/Electrical Engineering or related discipline.
- Relevant certifications (e.g., Embedded Linux, ARM, or security/IoT) are a plus.
- Exposure to regulated/industrial products or energy/building automation is advantageous.
- 2–4 years of professional experience with C/C++.
- Proven experience delivering embedded firmware or systems-level applications.
- Strong C/C++ on embedded Linux: POSIX APIs, multithreading, synchronisation primitives, IPC, and TCP/UDP sockets.
- Solid grasp of Linux internals: filesystems (ext4, SquashFS), init/service management (systemd or BusyBox), udev rules, and kernel modules.
- Hands-on Buildroot (or Yocto): cross-compilation toolchains, custom package creation, and reproducible builds.
- ARM (Cortex-A/M) familiarity: low-level peripherals (UART, SPI, I2C, GPIO), memory/performance constraints.
- STM32 development using HAL/LL and FreeRTOS; bootloaders and robust firmware update/OTA strategies.
- Git workflows and CI/CD (e.g., Jenkins, GitHub Actions) with versioned artifacts and release pipelines.
- Diagnostics & quality: unit tests, hardware-in-the-loop, fuzzing; static analysis (clang- tidy, cppcheck) and sanitisers (ASan/UBSan).
- Protocols: BACnet, Modbus (RTU/TCP), OPC UA, SNMP.
- Containerised build environments, Debian packaging, A/B updates, device security (TPM/Secure Element).
- Additional languages such as Go or Python.
- Experience with the Yocto Project or Buildroot.
- Work on innovative, globally scaling tech that blends software, hardware, and the cloud.
- Be part of a tight-knit, collaborative team where your ideas are heard.
- Hybrid work options and a flexible, supportive culture.
- Join a company that’s ISO27001 & ISO9001 certified – with security, quality, and innovation at the core.
Key Skills
Ranked by relevanceReady to apply?
Join Prospex Recruiting and take your career to the next level!
Application takes less than 5 minutes