systems research · encrypted transmissions
◈ EXPERIMENT LOG
007 · 2026-05-25

Linting Cache Lines from Source

snarf: a static linter that finds false sharing in Rust structs before you ship.

006 · 2026-05-17

The Slowdown That Doesn't Show Up in Profiles

False sharing: your threads are fighting over cache lines and your profiler can't see it.

005 · 2026-05-13

Verified, Not Safe: XDP Programs the Kernel Trusts

The BPF verifier proves your XDP program won't crash the kernel. It doesn't prove it's not a wiretap.

004 · 2026-04-06

Breeding Attackers: Where Evolutionary Search Wins and Where It Stalls

Fuzzing is an evolutionary attacker. I pointed the same breed-and-select loop at a timing side channel: it matched the standard attack but couldn't beat it — and the reward's shape is why.

003 · 2026-03-30

When the Compiler Is the Side Channel

Your branchless code has a branch, your key-zeroing is gone, and your hardware register write never happened.

002 · 2026-03-23

Breaking QUIC to Understand It

Decrypting Initial packets, exploiting PATH_CHALLENGE memory exhaustion, and hitting the wall of AEAD.

001 · 2026-01-15

The Hidden Bottleneck: Blocking in Async Rust

Using eBPF to find blocking code in Tokio without instrumenting your code.