Hello! I'm Michalis — a software engineer who likes making the JVM go fast on hardware it was never designed for. My work sits at the intersection of compilers, managed runtimes, and heterogeneous computing: getting Java programs to run efficiently on GPUs, FPGAs, and multi-core CPUs.
Today I'm a Senior Software Engineer at Neo4j and a Research Fellow at the University of Manchester, where I'm a core maintainer of TornadoVM and the lead author of GPULlama3.java — GPU-accelerated LLM inference written in pure Java.
Previously I was a Senior Software Engineer at OctoAI (now part of NVIDIA) working on the Apache TVM compiler, and I earned my PhD at the University of Manchester on performance optimisations for heterogeneous managed runtimes. Earlier, I worked at Huawei's research centre in Paris and at Ortec Finance in the Netherlands.
Here are some of the technologies I work with:
- Java, C++, Python, Bash
- CUDA, OpenCL, OpenMP
- JVM internals & GraalVM
- TornadoVM & Tensor IR
- Apache TVM, ONNX Runtime
- TensorRT, PyTorch
- Nsight & VTune profiling
- GitHub Actions (GPU runners), Docker