About

I work on graphics drivers, compilers, and operating-system code.

How I got here

I spent a lot of my childhood taking apart whatever software I could get my hands on: Minecraft servers and mods, router interfaces, games, and small tools. In high school I made odd programs and games for friends to try, and we wrote Discord and Telegram bots for fun. One of my earliest memories is modifying a Visual Basic game cheat when I was eleven. Most of it was copied from somewhere, but I was already trying to understand it well enough to change it for what I wanted. In 2019, a friend and I installed Kali Linux and tried whatever Wi-Fi attacks we found online. We barely understood the commands, but that was part of the process too.

I started learning programming more deliberately in 2017. At first I went from C# to Java as if collecting languages was the same thing as learning to program. I did not know much yet; I was simply making things and moving to whatever looked interesting next. During the pandemic, some friends and I made games in Unity. That eventually pulled me away from the engine editor and toward the code underneath it.

Around 2021 and 2022 I began learning graphics programming. From 2022 into 2025, much of my independent work was around OpenGL, Vulkan, and small 2D and 3D engines. In parallel, I was curious about how operating systems worked underneath applications, so I kept looking through the Linux kernel source. At first I could barely follow it. After a few years of reading source code even when most of it made little sense, large codebases gradually stopped looking opaque.

I started university in 2022 and graduated in 2026. Alongside the coursework, I kept following this path on my own. It was not a direction I discovered at university; it was a continuation of what I had already been doing for years.

Why drivers and compilers

Graphics was one half of the interest. In parallel, I kept wondering how the operating system made the machine work at all: what happened below an API, where abstractions ended, and what the hardware actually executed. Graphics drivers and shader compilers are where those two lines met.

Microarchitecture, computer architecture, ISAs, and instruction selection are especially interesting to me. I like the idea that a program is not optimized in the abstract: it is shaped around register pressure, memory behaviour, instruction latencies, and the constraints of a particular machine. And, before you ask: yes, I play programming puzzle games.

In 2025 I started spending serious time in Mesa and the Linux kernel. At Baykar, I worked on the embedded operating-system side of T3 Gemstone, a Linux-based development-board project built around the TI AM67A. My work involved board bring-up topics such as device trees, DDR setup, and register-level debugging; it was on the OS side rather than embedded application development.

What I am working on now

I work with the hardware I have available. At the moment that means an Intel integrated GPU and an Arm Mali-G610. On Intel I am reading and experimenting around i915, ANV, and the BRW compiler. On Mali, I am reading the Panthor kernel driver and the Panfrost/PanVK userspace stack, and following Kraid, the new Rust shader compiler work for modern Mali GPUs.

Before that I explored the AMD side of Mesa through RADV and ACO, including compiler tooling and optimizer experiments. I tend to move between stacks depending on the hardware I can test.

Also reading

  • computer architecture and microarchitecture
  • instruction sets
  • LLVM, MLIR, and compiler infrastructure
  • hypervisors and emulation
  • reverse engineering
  • high-performance and scientific computing
  • hardware/software co-design

Contact

You can find me as emomaxd on OFTC and elsewhere, or email me at emreleno (at) gmail (dot) com.