Writing an LLM inference loop
A ground-up look at tokenization, logits, temperature, softmax, and next-token sampling.
I write to understand Linux, distributed systems, debugging, LLM inference, and the craft of engineering.
A ground-up look at tokenization, logits, temperature, softmax, and next-token sampling.
Why LLM inference separates prompt processing from token-by-token generation.
Notes on purpose, hope, and what remains when circumstances strip almost everything else away.
The process, open-file, and inode tables that sit behind a Linux file descriptor.
An introduction to file descriptors and the interface they provide between a process and the kernel.
A short reflection on the scientific imagination at the center of Andy Weir’s novel.
Following a Python file write through libc, the kernel, page cache, and storage.
A disciplined way to use targeted output to shrink the search space of a bug.
Practical lessons for keeping long-context agents focused, fast, and useful.
Concrete habits for understanding an unfamiliar codebase with intention.
A tour of goroutines, machine threads, processors, and the Go scheduler.
A first distributed-systems approach to broadcasting a message across every node.
Building the simplest in-memory broadcast service before introducing a distributed network.
Exploring what makes ID generation deceptively difficult across a distributed cluster.
Practical ways to move from analysis and hesitation into useful action.
A framework for learning the people, systems, and context needed to become productive on a new team.
An introduction to how Java virtual threads change the cost and structure of concurrency.
A compact introduction to pages, memory, and page caching in Linux.
A step-by-step look at the boundary between user programs and the Linux kernel.
Core command-line concepts and tools worth keeping in every software engineer’s toolkit.