Have you ever wondered how you can write your own Linux scheduler? In the pre-6-12 days, this was pretty laborious and required you to know many arcane Linux internals, as process schedulers are deeply tied into the kernel. Additionally, you had to add your code directly to the Kernel, recompiling for every change. This made it nearly impossible for ordinary people to play with schedulers. But what changed with 6.12? In 6.12 the eBPF scheduler extensions have been added to the Linux kernel, making it possible to write your own schedulers using eBPF. eBPF was first developed to add functionality to network drivers and the network stack in Linux. This allows users to write code that the Kernel runs in its own interpreter (Just-in-time-compiled on many platforms) and attach it to hooks. You can hook into lots of Kernel functionality, like the before-mentioned network stack, system call handling, and, since 6.12, schedulers. To attach such hooks, a user with the necessary privileges can just load the eBPF program via a system call and attach it. No recompilation or restart of the Kernel is required. The scheduler extensions offer a simple interface that users can use to implement schedulers, from tiny demo to performant production ready schedulers. In this talk, I'll give you a short introduction to eBPF, process scheduling and sched-ext. After I primed you with this knowledge, I will show you in a live demo how to write your own simple scheduler. Of course, this will not be a production-ready scheduler, but it will allow you to play with different scheduling policies and modify them on the go. These demo programs will be written in C, so basic knowledge of C code and, of course, Linux will be helpful. But I'll also show a tiny example of writing Linux schedulers in Java at the end, so fear not if you're not familiar with C.