About the RoleWe 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 Assembly
- Experience with Embedded Linux
- Proficiency in IPC (Message Queues, Shared Memory, Sockets)
- Familiarity with protocols such as HTTP and MQTT
- Strong foundation in Data Structures and Algorithms
- Good understanding of memory management in low-level systems
- Experience in threading and multi-threading techniques
- Excellent debugging skills using tools like GDB, strace, valgrind, printk, etc.
- Experience in driver development, especially console-level bring-up
Bonus Points- Exposure to Yocto, Buildroot, or other Linux build systems
- Familiarity with real-time systems and low-power device optimization