Software Engineer - Core Networking

San Diego, California, United States
Software and Services

Summary

Posted:
Role Number:200547859
The Networking team creates foundational technologies that enable Apple products to communicate with each other and the rest of the world reliably, efficiently, securely, and privately. The team achieves this through invention and implementation of new technologies, collaboration inside and outside of Apple, and standardization across the industry. You, as a talented and energetic software engineer will join our Networking Infrastructure team. The team is responsible for designing, enhancing and maintaining the core networking stack OS components used in the majority of Apple's platforms, including but not limited to macOS, iOS, iPadOS, watchOS and tvOS! Specific areas of responsibility include networking APIs, protocols, as well as performance optimizations of various networking layers. The ideal candidate should posses an excellent conceptual understanding of networking stack internals and their interactions within the Operating System, both towards applications as well as network device drivers. Good working knowledge of TCP/IP and system level software design and implementation experience is also essential. The position will require the right candidate to determine the appropriate compromise between several competing factors such as performance (throughput and latency), energy efficiency (CPU and memory usage), ease of use and security.

Key Qualifications

  • Commercial networking software and/or hardware products development experience
  • Strong software design and development skills, including C or C++ programming language experience
  • Up-to-date and thorough knowledge of:
  • Link-layer technologies (e.g. Ethernet, Wi-Fi, Cellular, etc.)
  • TCP/IP protocol suite
  • Networking stack implementations (e.g. BSD, Linux/Android, Solaris, etc.)
  • System level and network troubleshooting skills
  • Excellent communication and interpersonal skills

Description

The candidate needs to be able to work in a fast paced environment, operate gracefully under stress, handle multiple assignments in parallel, and be self driven to be effective in an environment with little overhead. The candidate also needs to show initiative, be able to take ownership of a problem area, and demonstrate an ability to understand the role of the group's technology in the larger context of the product and network environment. The position has cross-functional aspects and the candidate will need to show excellent interpersonal and communication skills.

Education & Experience

BS in Computer Science, Electrical Engineering or equivalent networking software development experience

Additional Requirements

  • Preferred Experience: System level development experience on iOS or macOS Experience with user-space networking stack technologies and frameworks (e.g. netmap, DPDK, VPP, etc.) IP routing and NAT/Firewall Software switches API development experience Hardware offload experience Wireless networking technologies and standards (Wi-Fi and cellular) Network debugging tools (e.g. packet sniffers, protocol analyzers) System profiling and performance optimization experience.

Pay & Benefits