Overview
Our client's team is developing the network OS that drives switches and routers designed and manufactured by their company. Their networking solutions (incl. the NOS) are deployed in on-premise cloud data centre environments of our enterprise and MSDC customers.
Responsibilities
- Design and develop the networking OS that drives our data centre switches and routers; specifically — the component of the NOS that programs the network ASIC
- Fix bugs in the software within the area of responsibility and improve performance of the product
- Collaborate with hardware engineers to ensure seamless integration of software and hardware components; with control plane engineers in order to support provisioning of control plane information into the chip
- Participate in code reviews and contribute to the development of best practices
- Help with troubleshooting and resolve issues that arise in the networking operating system
- Support the Quality Control team in automated test development to ensure quality and reliability of the networking software
- Stay up-to-date with the latest networking trends and technologies, and incorporate them into the software design
Qualifications required to start
- Bachelors degree or equivalent experience in Computer Science, Electrical Engineering or related field
- Familiarity with Ethernet and IP-based protocols, dynamic routing protocols (BGP, OSPF at a minimum)
- Ability to work industry standards such as IETF RFC, IEEE etc. — understand standard requirements, implement the described behaviour and messaging in C code
- Proficiency in C programming language
- Experience of developing software for Linux OSes (this implies at advanced Linux user as well)
Experience and skills
- Experience in developing and maintaining software operating systems in data centre/telecom environment
- Ability to work with a large codebase: navigate the code in an efficient manner, interpret the code on the fly
- Experience debugging complex and multithreaded software
- Strong problem-solving and analytical skills
- Ability to work independently and collaboratively in a team environment
Ways to stand out
- Hands-on experience with microchip vendor SDKs (ASICs) and driver development (CPLDs, FPGAs)
- Understanding of the Linux kernel networking architecture
- Hands-on experience with I2C, SMBus/PMBus interfaces, ACPI
- Experience with network protocols such as BGP, OSPF, STP, MPLS, LDP
- Experience developing multithreaded Linux applications
- Experience developing Linux services (daemons)
- Some experience with embedded (being able to interpret a device data sheet, common on-board hardware components interconnection principles and mechanisms)
- Experience with distributed systems and/or cloud computing systems
- Familiarity with virtualisation/containerisation technologies such as KVM/QEMU and Docker, Kubernetes
The client can sponsor work permits in the UAE but the role can be located remotely in other countries