I build kernels, drone tools, rescue maps, and schedulers.
Bare-metal kernels in C and Rust, written to find out what a machine does when nothing is helping it.
And drones. I fly and write software for the DLRG, the German water rescue association and part of the country’s civil protection system — where somebody is actually waiting for the answer.
Selected work
Three of ten — the rest live on the work pageCraybond OS
A bare-metal AArch64 kernel that boots on QEMU’s virt machine. Assembly-level CPU bring-up and exception handling, an MMU with real page tables, the GIC interrupt controller, PCI enumeration and Device Tree parsing — then a scheduler with context switching and syscalls on top. It draws to a screen too, via a RAM framebuffer or virtio-gpu.
Mapping & 3D Viewer
The other half of the drone work: a browser viewer for what comes back from a flight. Leaflet handles orthophotos, elevation models and GeoJSON with per-layer opacity; Three.js handles the reconstructed mesh, with distance, area and height measurement, clipping planes, and switchable perspective or orthographic cameras. Built so an operations lead can measure something on a laptop without installing GIS software.
Travel Radius Map
A search-planning map for DLRG operations. Drop a point, pick a movement mode, speed and a time budget, and it draws how far a missing person could plausibly have got. Real isochrones come from the OpenRouteService API, with a plain radius as fallback when the API has nothing useful to say. Circles persist between visits, POIs list out, and search areas export to KML for the crews and the drone flight plan.
What I actually do
Short version01 — Low level
Getting to the bottom of the stack
I like the layer where nothing is done for you: no allocator until you write one, no scheduler until you write one, no output until you talk to a UART. Kernel work is slow and unglamorous and it is the only kind of programming that has ever properly held my attention.
02 — Drones
Flying, and everything after the flight
This is where most of my volunteer time goes. Drones are useful to civil protection precisely when the ground picture is unclear, which means the imagery has to become an answer quickly. So I work both ends: flight planning and imagery handling on the way out, and a browser viewer for orthophotos, elevation models and reconstructed 3D meshes on the way back — with measuring and clipping tools, so somebody who is not me can get a number out of the data on a laptop in the field.
03 — Civil protection
Software that gets used under pressure
The DLRG is a water rescue association and part of German civil protection, which means the software I write for it can end up in front of a volunteer during an actual deployment. That is a good discipline. A search-radius planner has to answer in seconds and be honest about how rough the answer is; nobody in a rescue is going to read a tooltip.
Say hello
I read everything that arrives. Issues and pull requests on any of my repositories are the surest way to reach me.