About this role
Minimum Requirements
- 2+ years of professional experience in compilers, JIT compilers or low level performance engineering
- Strong C++ design and coding skills
- Solid understanding of compiler optimization theory: SSA, data flow analysis, loop transformations
- Ability to read assembly and reason about why one instruction sequence is faster than another
What You Will Do
- Analyze performance of Java benchmarks and customer workloads, find gaps in generated code and trace them to their root cause in the compiler
- Implement and improve optimizations in Falcon's middle end and back end: inlining, loop optimizations, vectorization, redundancy elimination, speculative optimizations and their interaction with the runtime
- Improve code generation for x86_64 and AArch64
- Write tests and benchmarks that prove the improvement and protect it from regressions
- Contribute changes upstream to LLVM where it makes sense
Very Nice to Have
- Experience with LLVM IR and LLVM optimization passes, or with another optimizing compiler such as HotSpot C2, Graal, GCC or V8
- Experience with profilers such as perf, VTune or async profiler
- Knowledge of x86_64 and/or AArch64 microarchitecture
- Experience with Java, Scala or Kotlin, or with JVM internals
- MSc or PhD in Computer Science with a compiler or performance focus