This is my digital workbench for deep dives into Linux internals, networking, and optimizing the engineering workflow. A personal space for projects distinct from my professional role.

Recent Posts


Entering the Agentocene: A Statistical Investigation of AI-Era Coding

TL;DR This started as a search for KPI differences from AI adoption. That led to a more basic question first: can a shift like this be proven statistically at all? Software keeps handing more work to the machine: compilers, libraries, autocomplete. AI is the next step, and this time it shows up in the data, not just in opinions. I mined 5,009 git repositories (Rust, Python, JavaScript, TypeScript, commit history from 2019 through mid-2026) and tracked 10,812 individual developers to look for a measurable trace of that shift....

July 5, 2026 · 18 min · Hagen Paul Pfeifer

How Functions Begin on a Modern System

Every text on x86 assembly teaches the same function prologue: push %rbp mov %rsp, %rbp Save the old frame pointer, point it at the current stack top, and now you have a stable base to address locals and walk the stack. It is in every textbook, every course, every disassembly screenshot from 2010. I recently disassembled every executable on my Linux machine, all 2,749 of them, and counted how each function begins....

July 4, 2026 · 5 min · Hagen Paul Pfeifer

What Is Your Binary Made Of? A Tour of machine-code-analyzer

I keep asking small questions about binaries and never having a quick way to answer them. How big is the average function in this program? How much of it is cold error handling that almost never runs? Does it use SIMD at all? Was it built with the stack protector? readelf, objdump and nm all know pieces of the answer, but stitching them together by hand gets old fast. So I wrote a tool for it: machine-code-analyzer....

June 14, 2026 · 7 min · Hagen Paul Pfeifer

Opening Up My Git Training Material

I started teaching Git back when the porcelain was thin and most workflows required you to understand what was happening underneath. Over the years the material grew into something close to a full curriculum: fundamentals, branching and merging, rebasing, hooks, submodules, subtrees, LFS. Around 300 pages total. I no longer run these trainings myself, but the content is still in use in professional settings. Releasing it under an open license seems like the right call at this point....

May 7, 2026 · 2 min · Hagen Paul Pfeifer

AI-Powered Email Workflow

Background: when you’re subscribed to multiple mailing lists like the Linux Kernel Mailing List (lkml), bpf, dwarves, io-uring, linux-embedded, and others, the daily flood of emails makes it impossible to read everything in detail. Still, I want to keep up with ongoing development. That’s why I built a ChatGPT Summary Generator that integrates nicely with my OfflineIMAP–NeoMutt–Notmuch setup. Sorry for the clickbait — it’s just an email-to-ChatGPT fan-out. No proprietary Google/Microsoft stuff involved....

September 24, 2025 · 14 min · Hagen Paul Pfeifer

Reverse Engineering and Control-Flow Analysis with Intel Processor Trace

This blog-post demostrate how Intel Processor Trace (PT) can be usable for everyday reverse-engineering and debugging tasks by showing exactly how to capture and decode real execution, not just what the program could do in theory. PT is powerful and surprisingly underused; once you see how to drive it with perf, it becomes a reliable way to cut through indirection, obfuscation, and environment-dependent behavior. Agenda We start with core notions of control-flow analysis, move to what Intel PT actually records, then work through a practical perf workflow, deal with common pitfalls, and close with limits and an appendix on correlating addresses under ASLR....

January 23, 2025 · 7 min · Hagen Paul Pfeifer