Confusion is a muse
A developer argues that embracing confusion leads to deeper technical understanding and valuable blog content.
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.
155 articles from this blog
A developer argues that embracing confusion leads to deeper technical understanding and valuable blog content.
A software engineer shares practical tips for running low-effort, high-impact software book clubs, covering tools and strategies for in-person and email-based formats.
A tutorial on building a simple database with MVCC to implement and understand the five major SQL transaction isolation levels in 400 lines of code.
An analysis of key qualities that define excellent non-corporate technical blogs, including tackling complex topics and showing working code.
Author shares their experience starting a successful asynchronous paper reading club at work, focused on databases and distributed systems research.
A technical guide on using the memleak tool from bcc to find memory leaks in a running Postgres C program, comparing it to Valgrind.
A developer compares memory management, standard libraries, and explicit allocation in Zig, Rust, Go, and C from a systems programming perspective.
A software engineer shares strategies for onboarding to a new database team, focusing on build processes, documentation, and initial code contributions.
Explains the fundamentals of distributed consensus algorithms like Raft, used in transactional databases and systems like Kubernetes.
A developer details their week-long project building a minimal, in-memory storage engine for MariaDB/MySQL in C++, covering the process and API comparisons.
A developer shares personal experiences creating tech communities, from Discord groups to book clubs, and reflects on the challenges and rewards of organizing.
A technical deep dive into intercepting and walking PostgreSQL query execution plans to reconstruct SQL and enable custom evaluation.
A guide to creating an in-memory storage engine for PostgreSQL using the Table Access Method API introduced in version 12.
A technical exploration of using Linux's io_uring for asynchronous file writing, comparing implementations in Go and Zig to build intuition.
Benchmarking Go database drivers for SQLite and PostgreSQL on insert-heavy workloads, showing performance differences between popular and alternative drivers.
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.