Engineering

Compiler Engineer – Synchronous Programming (Dyad)

Remote
Work Type: Full Time

About the Project:
We are developing a compiler for Dyad, a new equation-based, object-oriented modeling language. A core focus of our current development is implementing robust, high-performance synchronous programming features. We are looking for a model-compiler engineer to help us bring these discrete, clocked semantics to life.

The Role:
As a Compiler Engineer on the Dyad team, you will take ownership of the synchronous data-flow features of the language. Drawing inspiration from Modelica, Clocked, SCADE, and Lustre, you will architect the compiler passes responsible for clock calculus, static analysis, and code generation for discrete-time and hybrid systems. Our compiler is implemented entirely in Julia.

Responsibilities:
  • Language design and semantics: Collaborate with language designers to define the precise semantics of Dyad's synchronous  constructs, including clock definitions, data-flow dependencies, state machines, and execution semantics.
  • Implementation: Build the compiler front-end and middle-end infrastructure in Julia for Dyad's synchronous programming constructs.
  • Clock Calculus: Implement robust clock inference and checking to ensure safe and deterministic data-flow execution.
  • Code Generation: Develop optimized code generation backends targeting real-time, deterministic execution.
  • Bridge Domains: Ensure seamless integration between the continuous-time (ODE/DAE) equation solving and the discrete-time synchronous partitions of the Dyad language.
  • Collaborate: Work closely with domain and modeling experts to refine the semantics and syntax of Dyad's synchronous features.
Qualifications:
  • Compiler Expertise: Practical background in compiler construction (parsing, type checking, intermediate representations, and code transformations).
  • Synchronous Language Knowledge: Familiarity with the semantics of synchronous programming languages (e.g., Lustre, SCADE, Zélus, Heptagon) or clocked features in modeling languages (e.g., Modelica.Clocked).
  • Academic/Research Background: A Master’s degree or Ph.D. in Computer Science, Software Engineering, or a related field, particularly with a focus on formal methods, compiler design, or cyber-physical systems.
  • Geographic Focus: Based in Europe or eastern US with the ability to collaborate effectively across European time zones.
Nice-to-haves:
  • Julia Proficiency: Strong programming skills in Julia, which is the primary language used for our compiler implementation.
  • Modeling & Simulation: A strong, genuine interest in physical modeling, simulation, and cyber-physical systems.
  • ModelingToolkit: Familiarity with the Julia SciML ecosystem, specifically ModelingToolkit.jl.
  • Equation-Based Languages: Experience with languages like Modelica, gPROMS, or Simscape.
  • Safety-Critical Systems: Background in formal verification or safety-critical software generation.

Location: Remote, European / US Eastern time zones

Submit Your Application

You have successfully applied
  • You have errors in applying