Software Engineer Intern 2026/2027
Core
Developing high-performance networking software and drivers for ASICs, FPGAs, and Linux kernels to enable Software Defined Networking (SDN) in data centers.
Role type
Software Engineer Intern (Embedded Systems/Networking)
Builds
Networking chips, software agents, and routing protocol implementations for high-capacity switches and routers.
Domain
Networking, Embedded Systems, Data Centers
Required skills
C/C++, Go, Python, Linux Kernel Development, Networking Protocols (BGP, OSPF, ISIS, LLDP), ASIC Programming, FPGA Programming, Embedded Systems, Algorithms, Software Development
Preferred skills
React.js, Redux.js, Node.js, YANG, OpenConfig, NETCONF, RESTCONF, gRPC, Git, Gerrit, Jenkins, Trello
Technologies
C, C++, Java, Python, Go, react.js, redux.js, node.js, Linux, C++, C, Java, Python, Go, react.js, redux.js, node.js
Responsibilities
Writing Linux user space and kernel code for 32-bit drivers to DMA 64-bit virtual memory spaces; Working on the hardware/software boundary for chips and the kernel; Implementing communications protocols between routers and switches at layer 2 and layer 3; Updating the forwarding state of the hardware using platform-independent abstractions; Implementing a policy language for filtering and manipulating routing data; Accessing ASIC registers over SPI bus, SMbus, PCIe and I2C to implement high resolution timers and gather network congestion statistics; Developing configuration management services using Go and Python; Developing routing protocol agents in C/C++ within a Fedora Linux embedded environment.