Modernizing my 1980s sound system

Tornado Cash and Bullets

Why don’t we do email verification in reverse?

age encryption in Python with pyrage

A most vexing parse, but for Python packaging

Things I hate about Rust, redux

Writing and publishing a Python module in Rust

Blockchains don't solve problems that are interesting to me

Calculating my open source blast radius

LLVM internals, part 4: attributes and attribute groups

A small Documerica Twitter bot

LLVM internals, part 3: from bitcode to IR

LLVM internals, part 2: parsing the bitstream

LLVM Internals: The Bitcode Format

Tools that I want

totally_safe_transmute, line-by-line

Weird architectures weren't supported to begin with

A few HiDPI tricks for Linux

Static Calls in Linux 5.10

Reading Manpages Like a Pro

How many registers does an x86-64 CPU have?

Towards an automated changelog workflow

Understanding static single assignment forms

LLVM's getelementptr, by example

Hiding messages in x86 binaries using semantic duals

Writing and publishing a Python module in Rust

How x86_64 Addresses Memory

Things I hate about Rust

Locating a compiler bug with git bisection

Implementing the Clipper chip cipher in Rust

More →