Job Description:
We are seeking a highly skilled Embedded Systems Engineer with strong expertise in C programming, Linux-based development, and deep understanding of Layer 2/Layer 3 networking protocols. The ideal candidate will be responsible for designing, developing, and optimizing embedded software for networking devices and systems.
Key Responsibilities:
- Design and develop embedded software in C for networking products.
- Work on Linux kernel and user-space components for embedded platforms.
- Implement and troubleshoot L2/L3 protocols such as Ethernet, VLAN, STP, ARP, IP, TCP, UDP, DHCP, BGP, OSPF, and MPLS.
- Optimize performance and memory usage for embedded systems.
- Collaborate with hardware engineers to integrate software with board-level components.
- Conduct unit testing, integration testing, and validation of embedded software.
- Participate in code reviews and maintain high coding standards.
- Debug and resolve issues in embedded systems using tools like GDB, Wireshark, and JTAG.
Required Skills:
- Strong proficiency in C programming for embedded systems.
- Hands-on experience with Linux kernel, device drivers, and system programming.
- Solid understanding of networking fundamentals, especially L2/L3 protocols.
- Experience with network packet processing, routing, and switching.
- Familiarity with cross-compilation, build systems (Make, CMake), and version control (Git).
- Experience with debugging tools and protocol analyzers.
- Knowledge of embedded development environments and RTOS (optional but preferred).