I joined Xamarin in March 2014, then Microsoft in March 2016 through Xamarin's acquisition. During my time at Xamarin, I worked on the Mono Runtime and its integration to the various Xamarin products (Xamarin.iOS, Xamarin.Android, VS for Mac). After a short stint in the .NET team from March 2019 to May 2019, I joined the Java Platform team in May 2019 where I am focusing on the Code Generation pipeline with Tiered Compilation, JIT and AOT Compilers, and integration to the many supported platforms. I have worked and continue working on a broad range of runtime related technologies, from GC to Compilers, to integration to many platforms (Windows, macOS, Linux, Android, iOS, tvOS, watchOS, PS4, Xbox, WebAssembly) and many technologies (LLVM, JVM, profilers).
Introduce the AOT Compiler that was introduced in Java 9 with the addition of the jaotc command-line utility. Explore some of the tradeoffs it needs to take, how the generated code fits in the Tiered Compilation pipeline, go through a simple example, and take a look at some alternatives (JIT at Startup, JIT caching, and Distributed JIT).