Frostbit
Yocto layer plus a small Rust agent for atomic A/B updates over terrible radio links β resumable, signed, and verified before the bootloader ever trusts a partition. 1 200 devices updated, zero bricked.
SourceOn-call for the kernel guild β LinkΓΆping, SE
Linux & systems engineer with 11 years spent somewhere between the kernel and the flight line. At Saab I build the embedded, hardened, boringly reliable Linux that has to work first try β in the cold, offline, and with nobody to SSH into it.
About me
I got my first tux sticker in 2004 and never gave a particularly good reason for stopping. Today I work at that seam between the mainline kernel and hardware that has to survive a Swedish winter β mostly C and Rust, device trees, bootloaders, and the awkward human middle where a BSP becomes a product.
My happy place is a board that misbehaves at 3 a.m. in a rack nobody visits: a boot that takes ninety seconds, an interrupt storm that eats a deadline, an update that bricks one unit in a thousand. I bisect honestly, measure with perf and ftrace rather than vibes, and upstream the fix instead of carrying a patch forever.
Outside of work I'm an unrepentant free-software nerd β Debian sid on every machine I own, a Yocto layer or two in public, FOSDEM weekends, and a home lab that exists mostly to prove that a thing can be self-hosted before someone sells you the SaaS version of it.
Toolkit
Currently learning: Rust in-kernel bindings, CXL memory pooling, and how to reproduce a race condition on exactly the third try.
Journey
Own the Linux platform inside our mission systems and ground-support hardware: Yocto BSPs, hardened images, measured boot and atomic A/B updates across a fleet of ~1 200 devices. Took boot-to-mission-ready from 96 s to 22 s, and killed a 4 ms scheduling regression that would have shipped to the field. Also run the internal kernel guild and the "how do we contribute this upstream" conversations.
Maintainer of two small open-source tools (below), reviewer on a Yocto layer, and one of the people who drags a table into a corridor at FOSDEM to hand out stickers. Treasurer of the Gothenburg Linux User & Kernel group since 2022 β which mostly means remembering to pay the domain invoices on time.
Built the edge collector for 4 000 wind-turbine boxes: Debian-based images, Rust agents, store-and-forward MQTT over a connection that existed twice a day. Cut field incidents 61 % by making the update path boring and reversible. Learned that most "hardware problems" are a power sequence with commitment issues.
Ran ~300 Debian and Alpine hosts: KVM, LVM, ZFS-on-root, more NFS than I'd admit. Wrote the Ansible playbooks that let me leave at 16:00, then wrote the ones that let my successor leave at 16:00 too. First taste of on-call, first 1 000-day uptime.
Thesis on real-time scheduling under mixed workloads β spent a semester arguing with SCHED_DEADLINE and a kernel patch that Linus politely ignored. Ran the student lab's machine room, learned sysadmin the hard way, discovered that free software is a social project as much as a technical one.
Selected work
Yocto layer plus a small Rust agent for atomic A/B updates over terrible radio links β resumable, signed, and verified before the bootloader ever trusts a partition. 1 200 devices updated, zero bricked.
SourceA 40 kB userspace log daemon for flash-starved boards: structured journald output, inotify-based rotation, 12 kB resident. Replaces rsyslog on devices where a megabyte is a lifestyle choice. Packaged for Debian and Alpine.
SourceCI harness that boots real boards in a loop and measures real-time latency with an eBPF tracer, then fails the build when a kernel bump costs you microseconds. Caught a 4 ms regression three days before it reached the field.
Read the write-upBeyond the keyboard
LΓ₯ngfΓ€rdsskridskor on Roxen, 30β40 km loops, never without an ispik and a thermos. Some winters the ice never gets brave enough; my excuses are always long.
SA0CVX. Parks-on-the-air from TynnelsΓΆ, mostly 20 m, mostly badly, occasionally with a Raspberry Pi in my pocket.
Six nodes, one switch I trust, zero cloud: Immich, Vaultwarden, Matrix, Forgejo and a job that just prints uptime to prove a point.
Kanelbullar by weight, never by recipe. The office can tell from the smell whether tonight's CI run is going well.
Contact
Consulting on embedded Linux, hardening or update strategy, speaking at your user group, or just a good-natured argument about init systems over fika β in Swedish or in English, my inbox is open.