CriteriaStrong SDK Developer (C++, Networking) ProfileMandatory (Experience) - 5+ years of proven experience in C++ software development, particularly in SDKs or device drivers.Mandatory (Skills 1) - Proficiency in C++ and Linux, with hands-on experience in SDK development.Mandatory (Skills 2) - Strong understanding of networking protocols (e.g., Ethernet, TCP/IP).Preferred (Skills) - Experience with SONiC SAI, ASIC SDKs, and communication protocols such as I2C, SPI, USART, and PCI.Preferred (Company) - Experience in companies specializing in networking, embedded systems, or SDK development.Note - Preference for candidates with additional experience in ARM microcontrollers and familiarity with Python or SWIG.
Role & ResponsibilitiesEngage in the design, development, and programming of Linux/C++ SDKs.Collaborate with software development teams on application design, development, and integration.Analyze code and software design, troubleshoot code flow, run test cases, reproduce issues locally, and implement debugging to enhance serviceability.Should be able to diagnose network-related issues, determine their connection to the SDK, and translate them into practical, actionable solutions.Improve the overall software by performing maintenance updates, upgrades, and optimizing performance.Participate in software/hardware integration with teams across various locations.Conduct unit testing to ensure code quality and reliability.Maintain regular communication with relevant design teams to ensure smooth integration and optimal performance.
Ideal CandidateProficiency in developing SDKs or device drivers using C++.A minimum of 5+ years of experience in software engineering.Strong academic background in computer technology (BSc / MSc in related fields).Demonstrated expertise in debugging, problem-solving, and analytical skills.Ability to work independently with a high sense of responsibility.Fluent in both spoken and written English.Experience in Embedded Protocols.
Preferred Qualifications:Experience with SONiC, SAI, and ASIC SDKs is a significant advantage.A solid understanding of computer networks and network protocols (Ethernet, TCP/IP).Familiarity with communication protocols like I2C, SPI, USART, and PCI.Experience with Makefiles and Linux environments.Exposure to ARM microcontrollers.Knowledge of additional programming languages and tools such as Python and SWIG.