Joseph Tremoulet is a Chief Research Engineer and compiler specialist with 11+ years of experience designing high-performance language runtimes, program analyses, and LLVM-based toolchains. He has driven production-grade innovations at Microsoft—building LLVM-backed binary translation, debugging tools, and JIT/AOT compiler improvements—and now leads research at Apogee Research focusing on performant, composable languages with strong correctness guarantees. His deep systems expertise is evidenced by contributions to high-profile open-source projects like LLDB and the LLILC .NET compiler, where he fixed subtle unwind/signal handling and exception semantics bugs. Comfortable moving between research prototypes and production systems, he balances principled algorithm design with pragmatic engineering and business priorities. Known as a mentor and technical coach, he pairs analytical rigor with a knack for simplifying complex compiler internals for teams. Based in Baltimore and Caltech-trained, he blends academic rigor with long-running, low-level systems craftsmanship.
This repo contains LLILC, an LLVM based compiler for .NET Core. It includes a set of cross-platform .NET code generation tools that enables compilation of MSIL byte code to LLVM supported platforms.
Role in this project:
Backend Developer
Contributions:278 commits, 155 PRs, 107 pushes in 3 years 3 months
Contributions summary:Joseph made several contributions focused on improving the LLILC compiler for .NET Core. Their work involved fixing bugs, notably in the handling of struct parameters and byref types, and implementing features, such as explicit null checks for loads and stores, and divide-by-zero checks. Furthermore, the user enhanced the core codebase by addressing issues in operand stack maintenance, which enabled the successful re-writing of branches.
Project moved to: https://github.com/llvm/llvm-project
Role in this project:
Back-end Developer
Contributions:7 commits in 5 months
Contributions summary:Joseph contributed to the LLDB debugger project, focusing on improving its functionality related to signal handling and unwinding. Their work involved modifying the unwinding process to correctly handle signal return trampolines, adding support for new signal-related flags, and adjusting the PC decrement logic. They also made changes to the minidump processing to address issues with signal handling, and integrated LLVM types for minidump ExceptionStream. The contributions demonstrate a strong understanding of debugging, system internals, and unwind mechanisms.
llvm
Find and Hire Top DevelopersWe’ve analyzed the programming source code of over 60 million software developers on GitHub and scored them by 50,000 skills. Sign-up on Prog,AI to search for software developers.