Intercepting and modifying Linux system calls with ptrace
A technical guide on using ptrace to intercept and modify Linux system calls for fault injection, written in Zig.
Phil Eaton is a staff engineer working on Postgres and software internals, sharing insights on databases, systems engineering, and life deep in the software stack.
160 articles from this blog
A technical guide on using ptrace to intercept and modify Linux system calls for fault injection, written in Zig.
Explores how different database systems execute query expressions, comparing tree-walking interpreters, virtual machines, and JIT compilers.
An exploration of functional programming concepts, arguing for practicing core tenets in familiar languages rather than learning new ones like Haskell.
TigerBeetle's distributed database is now testable in-browser via WebAssembly, featuring a deterministic simulator with network and disk fault injection.
A technical guide on using Zig's metaprogramming features, specifically reflection, to parse CSS into typed structs and pretty-print the results.
A technical guide to implementing the Raft distributed consensus protocol in Go, covering leader election and log replication.
A software developer shares a curated list of high-quality, topic-specific tech subreddits for advancing programming skills.
A developer recommends two essential books for improving professional programming skills: one on browser networking and one on data-intensive applications.
A developer's personal experience and insights on error handling in Zig, focusing on memory allocation failures and the 'try' keyword.
A developer shares lessons learned from live-streaming the creation of a Scheme-like interpreter in Go, covering both technical and streaming setup challenges.
A hobbyist programmer shares their journey and recommended resources for learning to implement compilers and interpreters for various programming languages.
A senior developer advises a frontend developer on transitioning into database development, covering learning paths, career strategies, and internal role transfers.
An article encouraging software developers to write about their learning experiences, even on non-novel topics, to practice writing, provide diverse perspectives, and cement understanding.
Explores high-performance I/O using io_uring and kqueue, comparing them to blocking I/O and providing a practical TCP server example.
A tutorial on building a basic embedded SQL database in Zig using RocksDB, covering lexing, parsing, storage, and execution.
A tutorial on embedding the RocksDB key-value database in a Zig program, covering basic operations like set, get, and list.
Explains how TigerBeetle, a database written in Zig, operates using only static memory allocation for predictability and performance.
A tutorial on building a minimal distributed key-value database using Hashicorp's Raft library in Go, with a single-file example.
Explains the purpose and advantages of embedded key-value databases like RocksDB and FoundationDB, comparing them to traditional SQL and NoSQL systems.
Article discusses SQLite's limited built-in functions, compares it to other databases, and introduces a Go-based standard library extension.