I'm Jake Kasper — I build low-level software: kernels, allocators, schedulers, and the unglamorous plumbing that makes hardware do useful things.
A hobby kernel written from scratch in C and AArch64 assembly. Built to drive Raspberry Pi hardware.
Boots on a physical pi4b. Implements a 4-level virtual memory system, a buddy page allocator and slab-based kmalloc(), a preemptive scheduler, copy-on-write based process replication, an ext4 driver over EMMC, an ELF loader that runs real user binaries within the ext4 filesystem, and a UNIX-based syscall table for compatibility with existing software, such as python and GNU.
Features a simple command line interface for user interaction, either via serial/UART for input/output and touchscreen over DSI for external output (supporting a subset of ANSI sequences).
Debugging enabled over JTAG with J-Link + OpenOCD + GDB against a running board — the same trace scrolling behind this page.
More bare-metal systems work — plus neural nets and game AI, built from scratch.
A custom RISC-V bootloader brings up an empty board, then runs two coordinated harts: a scheduler that builds offline Rate-Monotonic and Earliest-Deadline-First schedules, and a task manager — talking over a hand-defined inter-hart messaging zone.
A feed-forward net with zero dependencies: a hand-written matrix library, ReLU / sigmoid / softmax activations, MSE and cross-entropy losses, and full backpropagation — including softmax Jacobians for batched training.
Most of my work starts with a question like "but how does that actually work?" — which is how I ended up writing an operating system for fun.
I care about correctness, small dependency footprints, and code that a future maintainer can actually read. I'm happiest somewhere between the hardware and the abstraction.
Outside of kernels, I'm interested in compilers, storage engines, and developer tooling.
Whether it's a role, a collaboration, or you just want to talk about page tables — my inbox is open.