Engineering & Thoughts
A collection of articles on systems programming, NixOS infrastructure, and cybersecurity research.
modernizing rsync for the multi-gigabit era
the problem with rsync in 2026 rsync's rolling checksum algorithm was designed in 1996 for slow networks where bandwidth was the bottleneck...
escaping dependency hell with nix
the problem every developer has been there. you clone a repo, run the build, and get a wall of errors because your version of python is wro...
homemade udp in rust
udp is simpler than you think TCP gets all the attention because it's what most applications use. but UDP is where the interesting low-leve...
understanding the linux scheduler
what a scheduler actually does the linux scheduler decides which process runs on which CPU at any given moment. it runs thousands of times ...
sqlite is not a toy database
the reputation problem sqlite gets dismissed. "it's not a production database." "it doesn't scale." "use postgres for anything real."...
how i optimized my neovim config for 10ms startup
the problem with plugin managers my neovim used to take 400ms to start. that's fast enough for most people. it wasn't fast enough for me....
building a compiler frontend in go
why write a compiler compilers are the most educational programs you can write. lexers teach you string processing and state machines. pars...
the hidden cost of async rust
async is not free rust's async/await looks like magic. you write code that looks synchronous, and the compiler transforms it into a state m...
writing a tcp stack from scratch in rust
why would you do this most engineers treat TCP as a black box. packets go in, data comes out. that abstraction is fine until it isn't — unt...
why i stopped using docker for local dev
docker is great until it isn't i used docker for local development for four years. docker-compose files, volume mounts, multi-stage builds....
io_uring: the linux async I/O interface that changes everything
what is io_uring io_uring is a Linux kernel interface introduced in kernel 5.1 by Jens Axboe. it is the most significant change to Linux I/...
Zero-Copy Networking in Rust
The Problem Conventional packet processing involves multiple memory copies between kernel space and user space. This creates a bottleneck i...
rust lifetimes: a visual guide to the borrow checker
why lifetimes exist rust's borrow checker ensures that references never outlive the data they point to. lifetimes are the mechanism that ma...
Microbenchmarking with Criterion.rs
Why Benchmark? If you don't measure it, you haven't optimized it....
writing a unix shell from scratch in c
what a shell actually does a shell is a program that reads commands from the user, parses them, and executes them. that's it. the mystique ...
eBPF: The Future of Kernel Observability
Introduction eBPF allows developers to run sandboxed programs in the Linux kernel without changing kernel source code....
building a minimal webassembly runtime in rust
what is a wasm runtime a WebAssembly runtime is a program that reads a .wasm binary, validates it, and executes the instructions inside it....
Memory Safety in Modern C++
Smart Pointers Stop using raw pointers. std::unique_ptr and std::shared_ptr are your friends....
lock-free data structures: theory and practice in rust
why avoid locks mutexes are expensive. acquiring a lock involves a syscall on contention, disables CPU optimizations, and creates a global ...
Async Runtime Internals
The Executor The core component that manages task scheduling....
implementing a b-tree from scratch in go
why b-trees matter every database you have ever used is built on a B-tree or one of its variants. sqlite, postgres, mysql, mongodb — they a...
PostgreSQL Indexing Strategies
B-Tree Indices The default and most versatile index type....
writing a memory allocator in c: from sbrk to free lists
what malloc actually does when you call malloc(n), the C library asks the OS for memory using sbrk() or mmap(), then manages that memory in...
WebAssembly Beyond the Browser
WASI The WebAssembly System Interface brings Wasm to the server....
writing your first ebpf program with aya in rust
what is ebpf eBPF lets you run sandboxed programs inside the Linux kernel without modifying the kernel source or loading kernel modules. th...
Distributed Locking with Redis
Redlock Algorithm How to implement safe locking across multiple Redis instances....
Custom Allocators in C
Purpose Reducing fragmentation and improving cache locality for specific use cases....
LLVM IR: A Gentle Introduction
Static Single Assignment The foundation of LLVM's optimization passes....