Sr Software Engineer, Infrastructure Services (SONiC)
Summary
Do you want to help build some of the largest and most consequential enterprise and customer technology systems in the world? Join Apple’s Information Systems and Technology (IS&T) organization.
IS&T is the engine behind everything Apple does for customers and for the people who build for them. It’s Apple’s central nervous system. Supporting 2.5 billion active Apple devices, processing billions of secure transactions, and keeping the technology that defines modern life running flawlessly, IS&T makes the impossible feel effortless.”
Do you love building solutions to handle global complexity and immense scale? Imagine what you could do here.
Infrastructure Services is part of IS&T and the foundation of Apple's global network operations — managing data center equipment and systems to deliver compute, storage, and networking services for teams across Apple, including its internal developer community. From individual facilities to a worldwide network, Infrastructure Services ensures the technology underneath everything works without question.
Description
We're seeking a Software Engineer with a strong background in networking and systems software to develop, enhance, and troubleshoot networking software on the SONiC (Software for Open Networking in the Cloud) Network Operating System.
The ideal candidate understands networks end-to-end — from the protocol and control-plane layers down to the switching ASIC and packet-forwarding pipeline. This role requires hands-on experience with network operating systems, a solid grasp of SAI (Switch Abstraction Interface) and network ASICs, and excellent debugging and problem-solving skills.
You'll work across the full networking stack — SONiC applications, routing and switching protocols, SAI, ASIC SDK interfaces, Linux networking, and hardware — to build reliable networking platforms and diagnose complex issues in large-scale network environments.
Responsibilities
- Design, develop, and maintain networking software and features for SONiC-based network platforms.
- Develop and enhance SONiC components, services, platform interfaces, and networking applications.
- Debug complex networking problems across the full software and hardware stack: Application/Protocol → SONiC → SAI → ASIC SDK → Network ASIC → Packet Forwarding.
- Analyze packet-forwarding behavior to determine whether issues originate in the control plane, SONiC infrastructure, SAI, ASIC programming, hardware, or network configuration.
- Work closely with network ASIC vendors to understand SDK/SAI interactions when investigating forwarding or hardware-programming issues.
- Develop software that programs and manages switching hardware through SAI.
- Troubleshoot complex Layer 2 and Layer 3 networking issues, protocols, and technologies.
- Build tools and automation that improve debugging, observability, testing, and operational reliability of the network platform.
- Participate in design reviews, code reviews, testing, qualification, and production troubleshooting.
- Collaborate with network architects, hardware engineers, ASIC vendors, validation teams, and operations teams to deliver highly reliable networking platforms.
Minimum Qualifications
- Strong software development experience in C/C++, Python, Go, or similar systems programming languages.
- Strong understanding of computer networking fundamentals.
- Experience developing or working with network operating systems, switching software, routing platforms, or network infrastructure software.
- Working knowledge of SONiC architecture and its major components.
- Working knowledge of SAI and how SONiC uses it to program switching ASICs.
- Working knowledge of network switching ASIC architecture.
- Strong Linux systems knowledge, including Linux networking.
- Excellent debugging and troubleshooting skills, with the ability to systematically isolate problems across multiple software and hardware layers.
- Ability to analyze logs, packet captures, database state, protocol state, and ASIC programming state to identify root causes of complex networking issues.
- Strong software engineering fundamentals, including data structures, concurrency, APIs, testing, source control, and software design.
Preferred Qualifications
- 10+ years of software development experience.
- Hands-on experience developing or contributing to SONiC.
- Experience developing software using SAI APIs.
- Experience with one or more switching ASIC families or SDKs from vendors such as Broadcom or NVIDIA.
- Experience troubleshooting discrepancies between expected SONiC/SAI behavior and actual ASIC forwarding behavior.
- Understanding of ASIC resource limitations, including TCAM, route tables, ECMP groups, next-hop resources, counters, and buffers.
- Knowledge of VXLAN/EVPN, data-center networking, leaf-spine architectures, and large-scale network fabrics.
- Experience with network validation, traffic generators, packet analysis, or network automation.
- Experience developing software for high-scale or highly available networking systems.
- Experience contributing to open-source networking projects.