Home
?domain=notes.eatonphil.com
clear
Active and influential NYC infrastructure people
notes.eatonphil.com
·
11/15/2024
Exploring Postgres's arena allocator by writing an HTTP server from scratch
notes.eatonphil.com
·
11/6/2024
Effective unemployment and social media
notes.eatonphil.com
·
11/5/2024
Checking linearizability in Go
notes.eatonphil.com
·
10/31/2024
Build a serverless ACID database with this one neat trick (atomic PutIfAbsent)
notes.eatonphil.com
·
9/29/2024
Be someone who does things
notes.eatonphil.com
·
9/23/2024
Obsession
notes.eatonphil.com
·
8/24/2024
What's the big deal about Deterministic Simulation Testing?
notes.eatonphil.com
·
8/20/2024
Delightful, production-grade replication for Postgres
notes.eatonphil.com
·
7/30/2024
A reawakening of systems programming meetups
notes.eatonphil.com
·
7/7/2024
A write-ahead log is not a universal part of durability
notes.eatonphil.com
·
7/1/2024
The limitations of LLMs, or why are we doing RAG?
notes.eatonphil.com
·
6/17/2024
Confusion is a muse
notes.eatonphil.com
·
6/14/2024
How I run a software book club
notes.eatonphil.com
·
5/30/2024
Implementing MVCC and major SQL transaction isolation levels
notes.eatonphil.com
·
5/16/2024
What makes a great technical blog
notes.eatonphil.com
·
4/10/2024
A paper reading club at work; databases and distributed systems research
notes.eatonphil.com
·
4/5/2024
Finding memory leaks in Postgres C code
notes.eatonphil.com
·
3/27/2024
Zig, Rust, and other languages
notes.eatonphil.com
·
3/15/2024
First month on a database team
notes.eatonphil.com
·
3/11/2024
An intuition for distributed consensus in OLTP systems
notes.eatonphil.com
·
2/8/2024
Writing a minimal in-memory storage engine for MySQL/MariaDB
notes.eatonphil.com
·
1/9/2024
Make your own way
notes.eatonphil.com
·
12/27/2023
Exploring a Postgres query plan
notes.eatonphil.com
·
11/19/2023
Writing a storage engine for Postgres: an in-memory Table Access Method
notes.eatonphil.com
·
11/1/2023
io_uring basics: Writing a file to disk
notes.eatonphil.com
·
10/19/2023
Go database driver overhead on insert-heavy workloads
notes.eatonphil.com
·
10/5/2023
Intercepting and modifying Linux system calls with ptrace
notes.eatonphil.com
·
10/1/2023
How do databases execute expressions?
notes.eatonphil.com
·
9/21/2023
Eight years of organizing tech meetups
notes.eatonphil.com
·
9/4/2023
Thinking about functional programming
notes.eatonphil.com
·
8/15/2023
We put a distributed database in the browser – and made a game of it
notes.eatonphil.com
·
7/11/2023
Metaprogramming in Zig and parsing CSS
notes.eatonphil.com
·
6/19/2023
Implementing the Raft distributed consensus protocol in Go
notes.eatonphil.com
·
5/25/2023
Two books I recommend to developers
notes.eatonphil.com
·
5/16/2023
My favorite software subreddits
notes.eatonphil.com
·
5/16/2023
Errors and Zig
notes.eatonphil.com
·
3/21/2023
Notes from Neal Gabler's Walt Disney
notes.eatonphil.com
·
2/18/2023
Lessons learned streaming building a Scheme-like interpreter in Go
notes.eatonphil.com
·
1/30/2023
An effective product manager
notes.eatonphil.com
·
1/23/2023
The year in books: 2022
notes.eatonphil.com
·
1/12/2023
Favorite compiler and interpreter resources
notes.eatonphil.com
·
1/5/2023
General book recommendations
notes.eatonphil.com
·
1/4/2023
In response to a frontend developer asking about database development
notes.eatonphil.com
·
1/1/2023
Is it worth writing about?
notes.eatonphil.com
·
12/1/2022
A Programmer-Friendly I/O Abstraction Over io_uring and kqueue
notes.eatonphil.com
·
11/23/2022
Writing a SQL database, take two: Zig and RocksDB
notes.eatonphil.com
·
11/13/2022
A minimal RocksDB example with Zig
notes.eatonphil.com
·
10/30/2022
A database without dynamic memory allocation
notes.eatonphil.com
·
10/12/2022
A minimal distributed key-value database with Hashicorp's Raft library
notes.eatonphil.com
·
9/17/2022
What's the big deal about key-value databases like FoundationDB and RocksDB?
notes.eatonphil.com
·
8/23/2022
SQLite has pretty limited builtin functions
notes.eatonphil.com
·
8/21/2022
Container scheduling strategies for integration testing 14 different databases in Github Actions
notes.eatonphil.com
·
7/25/2022
Implementing a simple jq clone in Go, and basics of Go memory profiling
notes.eatonphil.com
·
7/10/2022
One year as a solo dev building open-source data tools without funding
notes.eatonphil.com
·
6/10/2022
Let's build a distributed Postgres proof of concept
notes.eatonphil.com
·
5/17/2022
SQLite in Go, with and without cgo
notes.eatonphil.com
·
5/12/2022
HTML event handler attributes: down the rabbit hole
notes.eatonphil.com
·
4/26/2022
Interview With Phil of DataStation
notes.eatonphil.com
·
4/17/2022
Surveying SQL parser libraries in a few high-level languages
notes.eatonphil.com
·
4/11/2022
Writing a document database from scratch in Go: Lucene-like filters and indexes
notes.eatonphil.com
·
3/28/2022
Speeding up Go's builtin JSON encoder up to 55% for large arrays of objects
notes.eatonphil.com
·
3/3/2022
SMTP protocol basics from scratch in Go: receiving email from Gmail
notes.eatonphil.com
·
2/20/2022
The world of PostgreSQL wire compatibility
notes.eatonphil.com
·
2/8/2022
How to recommend books, or, stop recommending SICP
notes.eatonphil.com
·
1/31/2022
Bootloader basics
notes.eatonphil.com
·
1/23/2022
dsq: Commandline tool for running SQL queries against JSON, CSV, Excel, Parquet, and more.
notes.eatonphil.com
·
1/11/2022
Analyzing large JSON files via partial JSON parsing
notes.eatonphil.com
·
1/6/2022
The year in books: 11 to recommend in 2021
notes.eatonphil.com
·
1/5/2022
Writing a minimal Lua implementation with a virtual machine from scratch in Rust
notes.eatonphil.com
·
12/28/2021
Running SQL Server in a container on Github Actions
notes.eatonphil.com
·
12/16/2021
Implementing zip archiving in Golang: unzipping
notes.eatonphil.com
·
11/23/2021
Benchmarking esbuild, swc, tsc, and babel for React/JSX projects
notes.eatonphil.com
·
11/13/2021
Building a fast SCSS-like rule expander for CSS using fuzzy parsing
notes.eatonphil.com
·
10/31/2021
Exploring PL/pgSQL part two: implementing a Forth-like interpreter
notes.eatonphil.com
·
10/29/2021
Exploring PL/pgSQL: Strings, arrays, recursion, and parsing JSON
notes.eatonphil.com
·
10/24/2021
Experimenting with column- and row-oriented datastructures
notes.eatonphil.com
·
10/18/2021
Notes on running Electron
notes.eatonphil.com
·
10/13/2021
Enumerating and analyzing 40+ non-V8 JavaScript implementations
notes.eatonphil.com
·
9/21/2021
Writing a simple JSON library from scratch: a tour through modern C++
notes.eatonphil.com
·
8/26/2021
Parser generators vs. handwritten parsers: surveying major language implementations in 2021
notes.eatonphil.com
·
8/21/2021
Practical? Common Lisp on the JVM: A quick intro to ABCL for modern web apps
notes.eatonphil.com
·
8/5/2021
Writing an efficient object previewer for JavaScript
notes.eatonphil.com
·
7/15/2021
React without webpack: fast path to a working app from scratch
notes.eatonphil.com
·
7/8/2021
Controlled HTML select element in React has weird default UX
notes.eatonphil.com
·
6/25/2021
Leaders, you need to share organization success stories more frequently
notes.eatonphil.com
·
6/22/2021
Languages you can run in the browser, part 1: Python, JavaScript, SQLite
notes.eatonphil.com
·
6/17/2021
Coolest hard-tech companies in NYC 2021
notes.eatonphil.com
·
6/4/2021
Writing a Jinja-inspired template library in Python
notes.eatonphil.com
·
5/23/2021
Learning a new codebase: hacking on nginx
notes.eatonphil.com
·
4/4/2021
How to get better at recursion
notes.eatonphil.com
·
3/7/2021
Extending gosql to supporting LIMIT and OFFSET
notes.eatonphil.com
·
1/23/2021
The year in books: 20 to recommend in 2020
notes.eatonphil.com
·
12/27/2020
Static analysis with semgrep: practical examples using Docker
notes.eatonphil.com
·
12/20/2020
Emulating linux/AMD64 userland: interpreting an ELF binary
notes.eatonphil.com
·
11/26/2020
The impact of management teams as a decision-making group, in startups and enterprise
notes.eatonphil.com
·
11/11/2020
Standard ML in 2020
notes.eatonphil.com
·
10/25/2020
The case for comments in code
notes.eatonphil.com
·
9/7/2020
Writing a simple Python compiler: 1. hello, fibonacci
notes.eatonphil.com
·
8/16/2020
A single-node Kubernetes cluster without virtualization or a container registry
notes.eatonphil.com
·
7/25/2020
Generating a full-stack application from a database
notes.eatonphil.com
·
6/14/2020
Generating a REST API from a database
notes.eatonphil.com
·
6/6/2020
RFCs and asynchronous-first culture
notes.eatonphil.com
·
5/16/2020
Writing a SQL database from scratch in Go: 4. a database/sql driver
notes.eatonphil.com
·
5/10/2020
Writing a SQL database from scratch in Go: 3. indexes
notes.eatonphil.com
·
5/1/2020
Writing a SQL database from scratch in Go: 2. binary expressions and WHERE filters
notes.eatonphil.com
·
4/12/2020
Studying foreign languages with inbox zero
notes.eatonphil.com
·
4/4/2020
Reviewing the Surface Book 2
notes.eatonphil.com
·
3/18/2020
Writing a SQL database from scratch in Go: 1. SELECT, INSERT, CREATE and a REPL
notes.eatonphil.com
·
3/6/2020
A minimal REST API in Java
notes.eatonphil.com
·
2/1/2020
Writing a lisp compiler from scratch in JavaScript: 6. an x86 upgrade
notes.eatonphil.com
·
12/8/2019
Confusion and disengagement in meetings
notes.eatonphil.com
·
11/30/2019
Interpreting Go
notes.eatonphil.com
·
10/12/2019
Administering Kubernetes is hard
notes.eatonphil.com
·
9/30/2019
Unit testing C code with gtest
notes.eatonphil.com
·
8/31/2019
Writing an x86 emulator from scratch in JavaScript: 2. system calls
notes.eatonphil.com
·
7/20/2019
Writing a lisp compiler from scratch in JavaScript: 6. LLVM system calls
notes.eatonphil.com
·
6/22/2019
Writing an x86 emulator from scratch in JavaScript: 1. a stack and register machine
notes.eatonphil.com
·
5/21/2019
Tail call elimination
notes.eatonphil.com
·
5/14/2019
Writing a lisp compiler from scratch in JavaScript: 4. LLVM conditionals and compiling fibonacci
notes.eatonphil.com
·
5/4/2019
Responsibility and ownership
notes.eatonphil.com
·
4/30/2019
Interpreting TypeScript
notes.eatonphil.com
·
4/14/2019
Writing a web server from scratch: 1. HTTP and sockets
notes.eatonphil.com
·
4/6/2019
Writing a simple JSON path parser
notes.eatonphil.com
·
3/27/2019
Writing a lisp compiler from scratch in JavaScript: 3. LLVM
notes.eatonphil.com
·
3/10/2019
AOT-compilation of Javascript with V8
notes.eatonphil.com
·
2/26/2019
Transparency and communication on small teams
notes.eatonphil.com
·
1/22/2019
Windows
notes.eatonphil.com
·
1/20/2019
Writing a lisp compiler from scratch in JavaScript: 2. user-defined functions and variables
notes.eatonphil.com
·
1/20/2019
Make small changes and solve the problems you have
notes.eatonphil.com
·
12/27/2018
Writing a lisp compiler from scratch in JavaScript: 1. lisp to assembly
notes.eatonphil.com
·
11/20/2018
On NYC, Tokyo and Seoul
notes.eatonphil.com
·
10/20/2018
Why (and how) to read books
notes.eatonphil.com
·
9/26/2018
Compiling dynamic programming languages
notes.eatonphil.com
·
9/2/2018
btest: a language agnostic test runner
notes.eatonphil.com
·
8/4/2018
Writing to be read
notes.eatonphil.com
·
5/18/2018
Writing a simple JSON parser
notes.eatonphil.com
·
5/6/2018
Finishing up a FreeBSD experiment
notes.eatonphil.com
·
4/28/2018
Book Review: ANSI Common Lisp
notes.eatonphil.com
·
3/25/2018
Starting a minimal Common Lisp project
notes.eatonphil.com
·
3/5/2018
Interview with the D Language Blog: BSDScheme
notes.eatonphil.com
·
1/20/2018
First few hurdles writing a Scheme interpreter
notes.eatonphil.com
·
1/10/2018
Deploying FreeBSD on Linode unattended in minutes
notes.eatonphil.com
·
3/11/2017
Walking through a basic Racket web service
notes.eatonphil.com
·
12/29/2016