About the Role
We are looking for a highly skilled Embedded Software Engineer with strong hands-on experience in C, C++, and Assembly language, who is passionate about building robust, low-level software on Embedded Linux platforms.
You will work closely with our hardware and systems teams to develop, debug, and optimize embedded applications and drivers for mission-critical systems.
Key Responsibilities
- Design, develop, and optimize embedded software on Embedded Linux
- Work with inter-process communication (IPC) mechanisms on Linux
- Develop and debug device drivers, focusing on :
- Board bring-up
- Inode structure
- Kernel console print (kprint)
- Integrate and test application-layer protocols (HTTP, MQTT)
- Efficiently manage memory allocation, threading, and multi-threading
- Apply program optimization and debugging techniques to achieve high performance and stability
- Collaborate with firmware and hardware teams for cross-functional development
Required Skills
Strong programming skills in C, C++, and AssemblyExperience with Embedded LinuxProficiency in IPC (Message Queues, Shared Memory, Sockets)Familiarity with protocols such as HTTP and MQTTStrong foundation in Data Structures and AlgorithmsGood understanding of memory management in low-level systemsExperience in threading and multi-threading techniquesExcellent debugging skills using tools like GDB, strace, valgrind, printk, etc.Experience in driver development, especially console-level bring-upBonus Points
Exposure to Yocto, Buildroot, or other Linux build systemsFamiliarity with real-time systems and low-power device optimization