About the company:
JuliaHub delivers transformative software products for modeling and simulation, solving the world’s most complex scientific and technical challenges. By pioneering a unique Scientific Machine Learning (SciML) approach and integrating Agentic AI through its flagship Dyad product suite, JuliaHub merges the rigor of traditional science with the speed of machine learning. We aren't just participating in the industry; JuliaHub is defining the future of AI-driven modeling and simulation.
Our mission is to provide best-in-class solutions for a global market, capturing significant share across the Aerospace, Automotive, Industrial, Utilities, and Pharma verticals.
Job Description
We are seeking a highly skilled and motivated Symbolic-Numeric Compiler Developer to join our dynamic team. The ideal candidate will bring strong expertise in symbolic-numeric compilers, numerical analysis, and high-performance computing. This role focuses on advancing compiler capabilities to efficiently solve complex numerical problems, particularly in systems involving differential-algebraic equations (DAEs), through innovative symbolic and numeric techniques.
Key Responsibilities:
- Design and implement symbolic-numeric compiler passes to enhance the Dyad compiler’s ability to handle complex numerical systems.
- Develop and optimize algorithms such as dynamic state selection, nonlinear tearing, and Pantelides-based transformations for DAE systems.
- Improve compiler handling of strongly connected components (SCCs), including efficient lowering and code generation strategies.
- Contribute to code generation and optimization for high-performance execution across multicore CPUs, GPUs, and distributed systems.
- Leverage parallelization techniques including SIMD autovectorization, multithreading, and distributed computing.
Qualifications:
- Proven experience in symbolic-numeric compiler development, including tools or frameworks such as Modelica, Simscape, or Mathematica.
- Strong background in numerical analysis, particularly differential-algebraic equations (DAEs) and implicit solvers.
- Hands-on experience with algorithms such as Pantelides algorithm, system tearing, dynamic state selection, and modified nodal analysis (MNA).
- Experience with high-performance computing (HPC) concepts and parallel programming.
Preferred Qualifications:
- Familiarity with GPU programming and performance optimization (e.g., CUDA, OpenCL).
- Experience optimizing code for distributed or multithreaded systems.
- Exposure to modern compiler frameworks and technologies such as XLA.