Employer listing
Research Engineer / Performance Engineer, RL Distributed Systems
Anthropic
San Francisco, Ca · hybrid · full time
$500,000 - $850,000
About the Role
Reinforcement learning is how Claude learns to reason, write code, and act autonomously over long horizons. At frontier scale, an RL run is an unusually demanding distributed system. Training, sampling, and environment execution run concurrently across a large fleet of accelerators and hosts, exchange data continuously, and have to keep making progress while hardware fails, load shifts, and the research changes underneath them.
As a Research Engineer on the Distributed Systems team within RL Engineering, you'll work on whatever part of that system is the current limit. That might be scheduling and placement, data movement between components, running large numbers of sandboxed environments, storage and checkpointing, networking, fault tolerance, autoscaling, or observability.
Key Responsibilities
- Design, build, and operate the distributed systems that run RL at scale, across training, sampling, and environment execution.
- Find and remove whatever currently limits the system, whether it's scheduling, data movement, storage, networking, or coordination.
- Build fault tolerance into every layer: failure detection, isolation, and recovery that keep long-running jobs making progress without human intervention.
- Design resource management and autoscaling so that compute follows demand as a run's needs shift.
- Build observability that makes it possible to understand what a run is doing and why it slowed down, stalled, or produced unexpected results.
- Build automation that detects and remediates common problems, and design interfaces that let engineers and automated tools operate runs safely.
- Work with researchers and performance engineers to make sure systems changes preserve training correctness and don't introduce subtle nondeterminism.
- Remove classes of failure at their source through incident review, testing, and redesign, and write clear design documents for what you build.
Minimum Qualifications
- Strong software engineering skills in Python and at least one systems language such as Rust, C++, or Go.
- Experience designing, building, and operating large-scale distributed systems in production.
- Deep understanding of distributed systems fundamentals, including consistency, coordination, consensus, failure modes, and recovery.
- Ability to reason quantitatively about throughput, latency, and resource costs across compute, memory, storage, and network.
- Experience debugging complex failures across many hosts and services, including failures you can't reproduce locally.
- Strong written communication, including design documents and incident writeups.
Preferred Qualifications
- Experience running ML training or inference infrastructure at scale.
- Experience across several layers of the stack, such as scheduling, storage, networking, and orchestration.
- Experience building schedulers, autoscalers, or resource management systems.
- Experience with container orchestration such as Kubernetes, and with sandboxed or virtualized code execution at scale.
- Experience with high-performance networking, RDMA, or collective communication libraries.
- Experience building observability or automated remediation for large fleets.
- Experience with async Python frameworks such as Trio or asyncio.
- Familiarity with reinforcement learning or large language model training workloads.
Location & Policy
- Locations: San Francisco, CA | New York City, NY | Seattle, WA
- Location-based hybrid policy: Currently, we expect all staff to be in one of our offices at least 25% of the time.
Benefits
Competitive compensation, optional equity donation matching, generous vacation and parental leave, flexible working hours, and office space.