Confessions of a Code Addict
Understanding a Process’s Address Space Layout
Why Git Has a Variable Named false_but_the_compiler_does_not_know_it
How Large Is the Virtual Address Space?
Why do we need virtual memory?
Virtual Memory: A Deep Dive into Page Tables, TLBs, and Linux Internals
How PyTorch Generates Random Numbers in Parallel on the GPU
x86 Addressing Modes, Part 1 — Immediate and Direct Access
A Systems Engineer’s Guide to Benchmarking with RDTSC
My Top 5 Favourite Features in Python 3.14
A Strong Reference to Weak References in Python
Compiling Python to Run Anywhere
What Makes System Calls Expensive: A Linux Internals Deep Dive
How to Leverage the CPU’s Micro-Op Cache for Faster Loops
Big O vs Hardware: Better Complexity ≠ Better Performance
x86 Assembly Exercise #1: Toy kill Program (Solution)
Understanding Registers and Data Movement in x86-64 Assembly
A Programmer’s Guide to x86-64 Assembly (Series Overview)
Why This Python Performance Trick Doesn’t Matter Anymore
Making System Calls in x86-64 Assembly
One Law to Rule Them All: The Iron Law of Software Performance
Debugging X86-64 Assembly with GDB
Building (and Breaking) Your First X86 Assembly Program
The System-Level Foundation of Assembly
Binary Arithmetic and Bitwise Operations for Systems Programming
Understanding Computer Organization from First Principles
Hardware-Aware Coding: CPU Architecture Concepts Every Developer Should Know
Python Performance: Why 'if not list' is 2x Faster Than Using len()
[Course Launch] Hands-on Introduction to X86 Assembly
My Top 15 OS Books: From Theory and Implementation to Systems Programming