elliot_
homearticlesprojectssnippetsplayground

articles

writing about systems programming, compilers, and developer tooling. 4 posts.

Mar 1, 2026
Mar 1, 2026

Understanding Stdio Buffering: Why fork() + exit() Duplicates Output

Learn why printf output duplicates when redirecting to a file in Linux -- and how stdio buffering, fork(), and exit() interact to cause unintended behavior.

CLinuxUnixSystems Programming/6 min read
Nov 15, 2024
Nov 15, 2024

Building a Git Clone in Go: Pack Files, Delta Chains, and the Smart HTTP Protocol

A deep dive into how I implemented Git's core plumbing commands from scratch in Go, including object storage, pack file parsing, and the HTTP smart protocol.

GoSystemsGit/4 min read
Sep 22, 2024
Sep 22, 2024

Writing a Vim-style Text Editor in Rust: Gap Buffers, Raw Terminal I/O, and Modal Editing

How I built a terminal text editor in Rust from scratch — covering raw terminal mode, efficient text storage with a gap buffer, and implementing vim's modal editing model.

RustSystemsTUI/4 min read
Jul 3, 2024
Jul 3, 2024

Implementing a Lox Bytecode VM in C: NaN Boxing, Mark-and-Sweep GC, and Upvalues

Following Crafting Interpreters Part III — implementing a fast bytecode VM for the Lox language with NaN-boxing, a mark-and-sweep garbage collector, and closures.

CCompilersVMGC/5 min read
articlesprojectssnippetsplayground
githubemail

© 2026