Staff Software Engineer, Environments Infrastructure
$405k - $605k • Remote • San Francisco, CA | New York City, NY
Posted 22d ago
Job Location
San Francisco, CA | New York City, NY
Tech Stack
Remote Work Policy
Fully remote
Categories
AI Infrastructure Engineer
About the job
Anthropic's Environments organization is responsible for building and maintaining the infrastructure that enhances Claude's capabilities through reinforcement learning. This includes developing frameworks for researchers to build environments and the underlying infrastructure for running them, with a core mission to productionize research. The role involves embedding with research teams to understand their workflows and designing frameworks and APIs that accelerate their progress, ensuring these systems are understandable, ownable, and maintainable. A significant part of the role also includes ensuring the health, maintainability, monitoring, and ease of triage for production RL runs. The ideal candidate will possess deep Python expertise, a strong sense of API and framework design, and an intuitive understanding of complex system failures, particularly silent ones. Experience with stateful distributed systems like workflow engines or actor frameworks is a plus. The role requires comfort in navigating and abstracting complex research codebases, incrementally improving them while research continues, and leveraging AI tools for development with a focus on verification.
Responsibilities
- Design widely used APIs, frameworks, and abstractions for engineers and researchers, promoting correct usage and preventing errors.
- Own the platform layers supporting environment execution, including the agent runtime.
- Build tooling for environment owners to understand, debug, and maintain environments in production without direct infrastructure support.
- Embed with research teams rotationally to work within their codebases, ensuring research continuity and transferring ownership.
- Prevent silent failure modes through structural measures like type safety, invariants, targeted testing, and refactoring.
- Drive adoption of new frameworks across the organization, managing deprecations and cutovers.
- Help define engineering standards, review practices, and design patterns for a new team, mentoring others in their adoption.
- Design base RL environment abstractions for broad subclassing across RL environments.
- Redesign model-tool interfaces for sandboxed agentic environments to guarantee state survival during serialization.
- Design state-sharing and recovery models for multi-agent workloads to enable transparent task resumption.
- Define failure and retry models for sandboxed execution environments.
Requirements
- Deep expertise in Python, including static typing, safe async/concurrency patterns, and performant code writing.
- Strong taste in API and framework design, with the ability to articulate design choices and a track record of framework adoption.
- Experience designing or operating stateful concurrent or distributed systems, reasoning about failure, retries, idempotency, and consistency.
- A habit of verification, measuring before concluding, and building system checks for correctness.
- Experience working productively in large, evolving, or research-style codebases.
- Strong written and verbal communication skills with collaborators of varied engineering backgrounds.
- Comfort with ambiguity, able to scope and drive loosely defined problems to maintainable outcomes.
- Experience building infrastructure, tooling, or frameworks for ML research or RL workflows.
- Familiarity with agentic systems or LLM training pipelines.
- Experience building agent frameworks, orchestration engines, or multi-agent systems, including checkpoint/restore and coordination of long-running stateful processes.
- Experience using AI coding tools on critical code with good judgment for delegation and verifiability.
- Experience building client libraries or SDKs on top of sandboxed, containerized, or remote execution platforms.
- Experience with large-scale data processing, dataset lifecycle management, or data lineage systems.
- Experience designing serialization schemes, plugin systems, or extensible class hierarchies.
- Experience embedding with or consulting for other teams, handing off systems for ownership, defining organization-wide code standards, or prior technical lead experience.
