Skip to content

ENGINEERING NOTES

THINGS WE BUILT.
THINGS WE BROKE.
THINGS WE LEARNED.

LINUX7 min

Why Linux Stalls on Big Writes: Dirty Page Tuning

Copying a big file freezes your Linux box? Learn how dirty pages and writeback work, then tune vm.dirty_bytes and vm.dirty_background_bytes safely.

LINUX8 min

Hugepages: The Hidden TLB Tax on LLM Loads

Measure dTLB misses with perf, compare 4K pages, THP and explicit hugetlb pages, and learn when transparent hugepages help or hurt GPU and LLM workloads.

NETWORKING8 min

BBR vs CUBIC: Pick a TCP Congestion Control

BBR or CUBIC? Build a reproducible iperf3 and tc netem lab in network namespaces, test loss and buffer depth, and decide when switching helps or hurts.

NETWORKING7 min

XDP: Drop Packets Before Linux Notices

XDP and eBPF explained: write a small C program that drops UDP traffic at the earliest hook, load it with ip link, and compare it fairly against nftables.

LINUX8 min

io_uring in Practice: When Async I/O Wins

io_uring explained for working engineers: submission and completion rings, a liburing example, the setup flags that matter, and the io_uring_disabled sysctl.

SOFTWARE7 min

PostgreSQL 19 REPACK: VACUUM FULL Without the Lock

PostgreSQL 19 adds REPACK and REPACK (CONCURRENTLY) to shrink bloated tables without a long exclusive lock. Syntax, limits, disk needs and a safe runbook.

NETWORKING7 min

OpenSSH 10.6: Is Your SSH Post-Quantum Yet?

OpenSSH 10.6 ships ML-DSA keys and an ML-KEM default. See how to check your SSH key exchange, silence or heed the warning, and generate hybrid keys safely.

LLM8 min

Why Your Local LLM Server Is Slow

Local LLM server slow or out of VRAM? Learn how the KV cache eats GPU memory, why decoding is bandwidth-bound and how to tune vLLM and llama.cpp batching.

NETWORKING7 min

Why Your WireGuard Tunnel Is Slow

WireGuard slower than the link underneath it? Learn the real packet overhead, how to find the right MTU with ping, when to clamp MSS and how to check UDP drops.

SOFTWARE7 min

Node.js October 2026 Security Release, Explained

Node.js shipped ten CVE fixes on 21 October 2026, including a Brotli out-of-bounds write. Here is what each bug does, how to check your fleet, and how to patch.

KERNEL7 min

Linux 7.3: A BPF Scheduler Per Cgroup

Linux 7.3 completes nested sched_ext, so a cgroup subtree can run its own BPF scheduler. Here is how sub-schedulers work and how to try sched_ext on a lab box.

GPU7 min

Why Your GPU Is Slow: PCIe, ReBAR and NUMA

Check your GPU's PCIe link speed and width, Resizable BAR and NUMA placement on Linux with lspci, sysfs and numactl, and fix the silent bottlenecks.

LINUX7 min

Cap CPU and RAM with cgroup v2 and systemd-run

Learn how Linux cgroup v2 limits CPU, memory and process counts, and use systemd-run to cap a runaway job in one command, with the raw files to inspect.

NETWORKING8 min

Build a Container Network by Hand with ip netns

Build a container-style network from scratch with Linux network namespaces, veth pairs, a bridge and nftables NAT, and see what Docker automates for you.

NETWORKING8 min

Fix Bufferbloat on Linux with fq_codel and CAKE

Reproduce bufferbloat with iperf3 and ping, then fix it on Linux with fq_codel or CAKE using tc. Includes a router shaping recipe and what to measure.

KERNEL8 min

Multi-Gen LRU: Stop Linux Thrashing Under Memory Pressure

Tame Linux memory thrashing with the multi-gen LRU. Check it is on, set min_ttl_ms, read the working-set histogram in debugfs and reclaim cold pages on demand.

KERNEL8 min

Linux 7.2 Cache-Aware Scheduling: Keep Threads Close

Linux 7.2 added cache-aware scheduling that packs a process's threads onto one LLC. See how SCHED_CACHE works, the debugfs knobs, and how to benchmark it.

LINUX7 min

Reading Linux PSI: Why Is My Machine Stalling?

Use Linux PSI (/proc/pressure) to tell memory, I/O and CPU stalls apart, set kernel pressure triggers in C, and chase the culprit with vmstat and bpftrace.

KERNEL7 min

ext4 data=journal Is Deprecated in Linux 7.3

Linux 7.3 deprecates ext4 data=journal, with removal planned for early 2028. Find out if you use it, what it costs you, and how to move to ordered mode safely.

LINUX7 min

Ubuntu 26.10 Upgrade Checklist for Servers

Ubuntu 26.10 ships Rust coreutils, drops SysV init scripts, moves to OpenSSL 4 and splits OpenSSH. Here is what breaks and a script to audit your servers first.

SOFTWARE7 min

Node.js Goes to One Major Release a Year

Node.js is dropping odd releases for one major every April, with a new Alpha channel and LTS for everything. What changes for servers and CI, with a script to track it.

HARDWARE8 min

My Fold6 Inner Screen Broke, So I Locked It to the Cover

Galaxy Z Fold6 inner screen dead and black every time you open it? Force the cover screen to stay on with adb device_state, Shizuku and Termux, no root needed.

LINUX8 min

Fixing Linux Freezes During Steam Downloads

Steam hits full speed and the whole Linux desktop locks up. A root-cause walkthrough of dirty page writeback, dm-crypt workqueues and QLC SSD cache exhaustion — and the exact sysctl and cryptsetup fixes.

HARDWARE5 min

Engineering a Smart Home Monitoring System

When there isn't an off-the-shelf sensor/automation product that fits, the alternative is custom hardware/software integration — built to the actual requirement.

PLC5 min

Engineering a PLC Control System

Translating sensors and actuators into reliable control logic — scan cycles, structured text, and why industrial code is written differently.

LLM6 min

Running Local LLM Infrastructure

What changes when inference moves off a hosted API and onto GPUs you control — model serving, memory budgeting and the operational tradeoffs.

RALPH6 min

Building Autonomous Development Loops

Specification-driven, self-correcting engineering: how a loop that inspects, implements, tests and fixes itself is structured — and why it needs a spec, not a prompt.

NETWORKING6 min

Building a Reverse Proxy From Scratch

What nginx and Envoy are actually doing under their config files — routing, connection handling and failure modes, implemented directly.

KERNEL7 min

Writing a Linux Character Driver

A field guide to the character-device interface: registering a device, wiring up file_operations, and talking to it from userspace.

NEWSLETTER

Get the engineering notes in your inbox.

Kernels, GPUs, networks, AI infrastructure — and the things we broke along the way. No spam, one click to leave.

We store only your email address, to send you new articles. See our privacy policy.