May 2022 |
Pull request review |
May 2022 |
Kernel string overcopying |
November 2021 |
Rewriting clipd |
July 2021 |
DWARF stack walks and fast symbolization for BPF |
March 2021 |
Switching to Caddy |
March 2021 |
Ahead-Of-Time compiled bpftrace programs |
December 2020 |
libbpf-rs: eBPF for the Rust ecosystem |
November 2020 |
Understanding btrfs internals part 5 |
November 2020 |
Understanding btrfs internals part 4 |
September 2020 |
Understanding btrfs internals part 3 |
September 2020 |
Understanding btrfs internals part 2 |
September 2020 |
Understanding btrfs internals |
July 2020 |
GDB hacking part 2 |
July 2020 |
GDB hacking |
April 2020 |
/proc/[pid] and the missing threads |
June 2019 |
Comparing interned strings |
January 2019 |
Waiting on process exit |
September 2018 |
C++ patterns: static registration |
April 2018 |
Learning about std::vector and emplace_back |
March 2018 |
Playing with C++ templates |
November 2017 |
systemd and sd_notify(3) |
May 2017 |
Linux kernel development setup |
April 2017 |
Optimistic concurrency control in ATS |
April 2017 |
Debugging Apache Trafficserver |
March 2017 |
On writing unmaintainable code |
March 2017 |
Setting up a barebones website |