Job Overview
We are looking for a Software Development Engineer with strong expertise in C/C++, Linux, and Layer 2/Layer 3 networking protocols. The role involves software design and implementation for embedded real-time platforms, with a focus on networking, software development, integration, verification, and troubleshooting.
Key Responsibilities
- Responsible for software requirement analysis, high-level and detailed software design, and implementation.
- Develop and implement software on Linux, including middleware, drivers, applications, management, data forwarding, and protocols/interfaces.
- Work closely with system engineering, architecture, and other teams to ensure effective design integration and verification.
- Verify software functions and provide support for troubleshooting and issue resolution during testing.
- Ensure timely delivery of high-quality software while meeting project requirements and targets.
- Work on networking functionality involving Layer 2 and Layer 3 protocols.
- Contribute to software development, integration, testing, and issue investigation.
Mandatory Skills
- Strong C/C++ programming skills.
- Strong Linux programming skills.
- Good understanding of Layer 2 and Layer 3 networking protocols.
- Knowledge of Ethernet and VLAN (802.1Q).
- Knowledge of STP/RSTP/MSTP and LACP.
- Knowledge of ARP, VXLAN, VPLS and MAC bridging.
- Understanding of loop prevention and switching pipelines.
- Knowledge of IPv4/IPv6.
- Knowledge of routing protocols including OSPF, BGP, RIP and IS-IS.
- Knowledge of ICMP, DHCP, MPLS and Segment Routing.
- Understanding of routing table (RIB/FIB) management and packet forwarding paths.
- Knowledge of unicast and multicast routing.
Technical Skills
Programming:
C, C++
Operating System:
Linux
Layer 2 Networking:
Ethernet, VLAN (802.1Q), STP, RSTP, MSTP, LACP, ARP, VXLAN, VPLS, MAC Bridging, Loop Prevention, Switching Pipelines
Layer 3 Networking:
IPv4, IPv6, OSPF, BGP, RIP, IS-IS, ICMP, DHCP, MPLS, Segment Routing, RIB/FIB, Packet Forwarding, Unicast Routing, Multicast Routing
Candidate Profile
The ideal candidate should have hands-on experience in C/C++ and Linux-based software development, along with a strong understanding of L2/L3 networking concepts and protocols. Candidates should be able to contribute to software design, development, integration, testing, and troubleshooting in an embedded software environment.