Principal Software Engineer - Workflow Dsl and Orchestration

NVIDIA NVIDIA · Semiconductors · Santa Clara, CA

NVIDIA is seeking a Principal Software Engineer to own the evolution of their production DSL and its execution behavior. This role involves designing and implementing a scalable DSL toolchain, modernizing legacy systems, and creating a rigorous test suite. The engineer will partner with users to translate needs into language features and leverage LLMs to accelerate contributions.

What you'd actually do

  1. Design and implement a scalable DSL toolchain: parsing, normalization, validation, expansion, and compatibility guarantees
  2. Evolve workflow attributes (dependencies, conditional execution, templating/macros, reuse/modular configs, sub-sequences) with strong backward compatibility and excellent diagnostics
  3. Build an intermediate representation (IR) that becomes the contract between authoring tools, execution engines, and UIs
  4. Modernize and migrate legacy implementations into Go and/or TypeScript while preserving behavior and improving maintainability
  5. Create a rigorous conformance test suite (golden inputs/outputs) to prevent regressions as the DSL grows

Skills

Required

  • B.S. CS/EE (or equivalent experience)
  • 15+ years building large-scale software systems (Staff/Principal level impact expected)
  • Strong experience in Go and/or TypeScript (plus at least one additional systems language preferred)
  • Proven ability to design and ship language-like systems (DSLs, config languages, compilers/transpilers, query languages, rules engines) with real users
  • Strong computer science fundamentals in algorithms/data structures, with emphasis on graph algorithms and program transformations
  • Experience building workflow/orchestration systems (dependency graphs, scheduling strategies, finite-state machines, determinism under concurrency, cycle detection, partial execution, recovery)
  • Excellent engineering judgment around compatibility, migration strategy, and safe extensibility

Nice to have

  • Experience replacing complex string-based regexes with explicit parsers/AST/IR and safe evaluators
  • Expertise in building great error messages and developer UX for complex configuration systems
  • Background in build systems, CI pipelines, job schedulers, or distributed execution engines
  • Track record of decomposing large legacy systems into testable, modular components while keeping production stable
  • Experience aligning language idioms across multiple implementations (e.g., server + client, or old + new engine) during migration

What the JD emphasized

  • 15+ years building large-scale software systems
  • Proven ability to design and ship language-like systems (DSLs, config languages, compilers/transpilers, query languages, rules engines) with real users
  • Experience building workflow/orchestration systems (dependency graphs, scheduling strategies, finite-state machines, determinism under concurrency, cycle detection, partial execution, recovery)