Yury Nuzhdin
Software Architect in ASML working on Julia algorithms in the near real time system.
GitHub
Sessions
Debugging performance and memory issues in Julia often requires combining multiple tools and correlating their outputs. Participants will learn how to use a runtime-level instrumentation approach to analyze and resolve performance issues in real code, including cases that are difficult to diagnose using existing tools.
Julia aggressively transforms your code during compilation and execution, which can make it difficult to see what actually runs. This can introduce subtle performance and memory costs that are not directly visible in existing tools. In this talk, we show a compiler and runtime instrumentation approach that provides a runtime-level view of program execution, links runtime behavior back to source code, and show how hidden costs can be uncovered and performance assumptions validated.
ASML builds the lithography machines that enable the world’s most advanced microchips. For our newest DUV systems, Julia has become part of the control software stack—directly participating in algorithms that influence wafer quality and overall system performance.
At JuliaCon 2025 we shared our early exploration and our intention to use Julia in production. One year later, we are excited to report concrete results: we successfully exposed wafers on a prototype machine using a Julia library built with juliac/PackageCompiler, and the performance, stability, and developer experience were all very promising.
In this talk, we will share how we designed, optimized, and deployed time‑critical Julia code in an environment where algorithms must complete within strict millisecond‑level deadlines, remain predictable, and integrate with a large, safety‑critical control system written in multiple languages.
We will highlight the architecture patterns we adopted, the trade‑offs we had to make, and a collection of “unexpected lessons” from working with Julia in a real industrial setting.
Julia was created by greedy programmers who wanted it all. What if we are equally greedy about tooling? This session invites discussion on missing capabilities in Julia’s development tools. What tools or workflows still fall short? Where should future efforts be made to improve productivity and insight?