Senior Software Engineer, RL Post-training Frameworks

NVIDIA NVIDIA · Semiconductors · Germany +2 · Remote

Senior Software Engineer role focused on building and scaling RL post-training infrastructure, including inference, rollout generation, and training loops. The role involves optimizing performance across heterogeneous hardware, contributing to open-source RL frameworks, and ensuring fault tolerance and elastic scaling for distributed training jobs. It also includes partnering with teams on CPU-driven workloads, tool-use, and agentic environments, and collaborating with hardware and software teams to leverage next-generation capabilities.

What you'd actually do

  1. You will architect and build RL post-training infrastructure that scales efficiently from experimentation on a single GPU to production across thousands of nodes.
  2. This means tuning RL training-inference-rollout loops on GPUs, CPUs, and LPUs for performance where it matters, contributing to and improving the performance and usability of open-source RL frameworks, and partnering with the teams who own them.
  3. The role also spans fault tolerance, elastic scaling, and fast restarts so long-running distributed training jobs survive failures, stragglers, and resource contention.
  4. Beyond GPU-accelerated training, this work includes partnering with teams building CPU-driven rollout workloads, including tool-use, code execution, and agentic environments, supplying the systems and framework engineering needed to run them efficiently alongside GPU- or LPU-accelerated generation and GPU-accelerated training.
  5. It also means advocating for researcher and partner needs with NVIDIA's networking, math library, and compiler teams so the capabilities RL workloads require get prioritized and delivered, and working with hardware teams to take advantage of next-generation hardware capabilities in post-training workloads.

Skills

Required

  • Python
  • C/C++
  • distributed systems
  • high-performance computing
  • deep learning infrastructure
  • ML systems engineering
  • Reinforcement learning for LLM post-training (RLHF, PPO, GRPO, DPO, reward modeling)
  • PyTorch internals, including distributed training primitives (FSDP, tensor parallelism, pipeline parallelism)
  • Kubernetes runtime internals (container lifecycle, pod scheduling, resource quotas, GPU allocation)
  • End-to-end distributed systems design (service boundaries, data flows, consistency models, failure modes, recovery approaches)

Nice to have

  • networking (NCCL, NVLink, InfiniBand)
  • advanced multi-dimensional parallelisms (Megatron-LM, FSDP2, TP/DP/PP, MoE)
  • memory optimizations (quantization-aware training, mixed precision)
  • high-performance inference engines (vLLM, SGLang, TensorRT-LLM)
  • actor- and task-based distributed programming (Ray, Monarch, or comparable systems)
  • multi-turn training
  • multi-agent co-evolution
  • VLM post-training
  • Open-source contributions to RL post-training or distributed training projects (e.g., VeRL, Miles, TorchTitan, OpenRLHF, NeMo-Aligner, DeepSpeed-Chat)
  • Kubernetes work beyond routine operations (custom operators, GPU device plugins, or scheduling contributions)

What the JD emphasized

  • MS or PhD in Computer Science, Computer Engineering, or a related field (or equivalent experience)
  • 5+ years of professional experience in distributed systems, high-performance computing, deep learning infrastructure, or ML systems engineering
  • Demonstrated experience building or contributing to large-scale distributed systems or runtime frameworks in production at a frontier AI lab, hyperscaler, or major technology company
  • Direct experience operating frontier-scale training (RL post-training at thousands of GPUs and/or large-scale LLM or multimodal pre-training)
  • Hands-on experience with production distributed failures at scale (stragglers, resource contention, hardware faults)

Other signals

  • RL post-training infrastructure
  • distributed systems for AI
  • scaling AI training and inference