2026-04-15
Immutable Systems: NixOS + systemd-repart + systemd-sysupdate
x86.lol/generic/2024/08/28/systemd-sysupdate.htmlWhen you build software for embedded devices (your Wi-Fi router or home automation setup on your Raspberry Pi), there is always the question how to build these images and how to update them.
2026-04-05
Killing the ISP Appliance: An eBPF/XDP Approach to Distributed BNG
markgascoyne.co.uk/posts/ebpf-bngAn open-source, eBPF-accelerated BNG that runs directly on OLT hardware - eliminating expensive centralised appliances
2026-02-25
Finding the Bottom Turtle · blog.dave.tf
blog.dave.tf/post/finding-bottom-turtleSome reflections on trusting trust, and how deep the rabbit hole goes.
2026-01-09
Decorative Cryptography
www.dlp.rip/decorative-cryptographyLast year, I came agross a Linux kernel feature called TCG_TPM2_HMAC. It claims to detect or prevent active and passive interposer attackers.
It all sounds really great. We should care about interposer adversaries. It’s great to use the TPM features that were invented to help us with these problems.
2025-12-17
A security model for systemd
lwn.net/Articles/1042888Poettering said that he does have a vision for how all of the security-related pieces of systemd are meant to fit together. He wanted to use his talk to explain ""how the individual security-related parts of systemd actually fit together and why they exist in the first place"".
2025-11-18
Patterns for Defensive Programming in Rust | corrode Rust Consulting
corrode.dev/blog/defensive-programming[...] hard-learned patterns to write more defensive Rust code, learned throughout years of shipping Rust code to production. I’m not talking about design patterns here, but rather small idioms, which are rarely documented, but make a big difference in the overall code quality.
2025-07-03
Rewriting Kafka in Rust Async: Insights and Lessons Learned in Rust | Rex Wang
wangjunfei.com/2025/06/18/Rewriting-Kafka-in-Rust-Async-Insights-and-Lessons-LearnedRex Wangs blog
2025-06-27
How fast are Linux pipes anyway?
mazzo.li/posts/fast-pipes.htmlPipes are ubiquitous in Unix --- but how fast can they go on Linux? In this post we'll iteratively improve a simple pipe-writing benchmark from 3.5GiB/s to 65GiB/s, guided by Linux
perf.
2025-03-10
The power of interning: making a time series database 2000x smaller in Rust | Blog | Guillaume Endignoux
gendignoux.com/blog/2025/03/03/rust-interning-2000x.htmlIn this deep dive post, I’ll explain how I used the interning design pattern in Rust to compress this data set by a factor of two thousand! We’ll investigate how to best structure the interner itself, how to tune our data schema to work well with it, and likewise how serialization can best leverage interning.
2025-01-22
Packer: How to Build NixOS 24 Snapshot on Hetzner Cloud - Developer Friendly Blog
developer-friendly.blog/blog/2025/01/20/packer-how-to-build-nixos-24-snapshot-on-hetzner-cloudStep-by-step guide to building a NixOS 24 snapshot on Hetzner Cloud using Packer, with complete configuration files and OpenTofu deployment examples.
Building a tiny Linux from scratch
blinry.org/tiny-linuxLast week, I built a tiny Linux system from scratch, and booted it on my laptop!
2024-11-20
Why I love Rust for tokenising and parsing
xnacly.me/posts/2024/rust-pldevMacros, iterators, patterns, error handling and match make Rust almost perfect
2024-11-13
What I Wish Someone Told Me About Postgres
challahscript.com/what_i_wish_someone_told_me_about_postgresI want to try to catalog the bits that I wish someone had just told me before working with a Postgres database. Hopefully, this makes things easier for the next person going on a journey similar to mine.
2024-10-18
Optimizing Mandelbrot Generation with SIMD
bumbershootsoft.wordpress.com/2024/01/27/optimizing-mandelbrot-generation-with-simd2024-09-19
How to Build a Small Solar Power System
solar.lowtechmagazine.com/2023/12/how-to-build-a-small-solar-power-systemThis guide explains everything you need to know to build stand-alone photovoltaic systems that can power almost anything you want.
2024-09-10
What is the best pointer tagging method?
coredumped.dev/2024/09/09/what-is-the-best-pointer-tagging-methodIn this post, we are going to take a deep dive into pointer tagging, where metadata is encoded into a word-sized pointer. Doing so allows us to keep a compact representation that can be passed around in machine registers. This is very common in implementing dynamic programming languages, but can really be used anywhere that additional runtime information is needed about a pointer. We will look at a handful of different ways these pointers can be encoded and see how the compiler can optimize them for different hardware.
2024-08-29
Overloaded fields, type safety, and you
educatedguesswork.org/posts/text-type-safetyThe underlying problem we are facing here with all these examples is the same: having the same set of bits which can mean two different things and needing some way to distinguish those two meanings. Failure to do so leads to ambiguity at best and serious defects at worst. That's why you see so much emphasis in modern systems on type safety and on strict domain separation between different meanings.
2024-07-31
Build your own SQS or Kafka with Postgres
blog.sequinstream.com/build-your-own-sqs-or-kafka-with-postgresWe're Sequin, an open source message stream built on Postgres. We think Sequin's cool, but you don't need to adopt the project to get started with streaming in Postgres. In fact, you can turn Postgres into a basic queue/stream pretty easily. Below, we share what we've learned so you