Software Engineer, ML Networking

Anthropic
San Francisco2025-09-23

About the job

A systems-level engineer specializing in network infrastructure and network optimization, with expertise in building and maintaining software that interacts with networks. You will be responsible for writing and maintaining software that interfaces between our accelerators and our high-speed networks. This role requires deep technical knowledge of network protocols, kernel-space and/or user-space networks, interfacing with hardware, and the ability to debug and optimize distributed software at the network level.

Responsibilities

Build a system for accelerator-initiated tensor movement over the network

Benchmark software for a new networking environment

Implement a new collective algorithm to improve latency

Optimize congestion control algorithms for large-scale synchronous workloads

Debug kernel-level network latency spikes

Qualifications

Minimum

Expert-level proficiency with network protocols and networking concepts

Deep kernel networking: TCP/IP stack internals, XDP, eBPF, io_uring, and epoll

User-space networking: DPDK, RDMA, kernel bypass techniques

Understanding of how to build higher-level abstractions like collectives and RPC

Skilled at diagnosing and resolving networking issues in distributed systems, especially at OSI model layers 2-4

Strong programming skills in a systems programming language, including memory management, lock-free data structures, and NUMA-aware programming

Software, driver, and OS performance optimization tools and techniques

Comfort with or desire to learn Rust

Bachelor’s degree or an equivalent combination of education, training, and/or experience

Preferred

Understanding of ML accelerators and accelerator drivers

Demonstrated ability to design new network protocols

Experience with PCIe and drivers for PCIe devices

Expertise in algorithms used in networking, including compression and graph algorithms

Experience programming on SmartNICs

5+ years of experience in systems programming or network programming

Often comes from backgrounds in: HPC, telecommunications, host networking software, OS/kernel engineering, or embedded systems

Strong debugging mindset with patience for complex, multi-layered issues