Home
Notes
Popular
RSS
Subscribe
Frequent
javascript (24)
parsing (20)
databases (18)
golang (14)
compilers (14)
postgres (13)
sql (10)
interpreters (10)
lisp (9)
books (9)
python (8)
go (8)
management (7)
json (7)
linux (6)
zig (5)
x86/amd64 (5)
typescript (5)
scheme (5)
learning (5)
View all
2023
Implementing a distributed key-value store on top of implementing Raft in Go
go
raft
May 25, 2023
Two books I recommend to developers
books
learning
career
May 16, 2023
My favorite software subreddits
learning
reddit
May 16, 2023
Errors and Zig
zig
March 21, 2023
Notes from Neal Gabler's Walt Disney
books
unpolished
February 18, 2023
Lessons learned streaming building a Scheme-like interpreter in Go
golang
interpreters
parsing
lisp
scheme
January 30, 2023
An effective product manager
product-management
January 23, 2023
The year in books: 2022
books
January 12, 2023
Favorite compiler and interpreter resources
compilers
interpreters
lists
January 5, 2023
General book recommendations
books
lists
January 4, 2023
In response to a frontend developer asking about database development
careers
databases
letters
January 1, 2023
2022
Is it worth writing about?
writing
learning
December 1, 2022
A Programmer-Friendly I/O Abstraction Over io_uring and kqueue
databases
zig
io_uring
kqueue
linux
freebsd
darwin
external
November 23, 2022
Writing a SQL database, take two: Zig and RocksDB
databases
zig
parsing
sql
rocksdb
November 13, 2022
A minimal RocksDB example with Zig
rocksdb
databases
zig
c
October 30, 2022
A database without dynamic memory allocation
databases
zig
external
October 12, 2022
A minimal distributed key-value database with Hashicorp's Raft library
go
raft
databases
September 17, 2022
What's the big deal about key-value databases like FoundationDB and RocksDB?
databases
postgres
mysql
August 23, 2022
SQLite has pretty limited builtin functions
sqlite
duckdb
postgres
go
August 21, 2022
Container scheduling strategies for integration testing 14 different databases in Github Actions
testing
databases
containers
github actions
July 25, 2022
Implementing a simple jq clone in Go, and basics of Go memory profiling
go
parsing
profiling
json
July 10, 2022
One year as a solo dev building open-source data tools without funding
retro
June 10, 2022
Let's build a distributed Postgres proof of concept
postgres
golang
raft
parsing
databases
May 17, 2022
SQLite in Go, with and without cgo
sqlite
go
benchmark
external
May 12, 2022
HTML event handler attributes: down the rabbit hole
html
javascript
external
April 26, 2022
Interview With Phil of DataStation
interview
external
April 17, 2022
Surveying SQL parser libraries in a few high-level languages
sql
parsing
go
rust
java
javascript
python
ruby
external
April 11, 2022
Writing a document database from scratch in Go: Lucene-like filters and indexes
databases
golang
parsing
elasticsearch
March 28, 2022
Speeding up Go's builtin JSON encoder up to 55% for large arrays of objects
go
json
external
March 3, 2022
SMTP protocol basics from scratch in Go: receiving email from Gmail
golang
smtp
networking
February 20, 2022
The world of PostgreSQL wire compatibility
postgres
databases
python
external
February 8, 2022
How to recommend books, or, stop recommending SICP
books
January 31, 2022
Bootloader basics
assembly
bootloaders
January 23, 2022
dsq: Commandline tool for running SQL queries against JSON, CSV, Excel, Parquet, and more.
dsq
go
sql
external
January 11, 2022
Analyzing large JSON files via partial JSON parsing
javascript
parsing
external
January 6, 2022
The year in books: 11 to recommend in 2021
books
January 5, 2022
2021
Writing a minimal Lua implementation with a virtual machine from scratch in Rust
lua
compilers
interpreters
virtual machines
rust
parsing
December 28, 2021
Running SQL Server in a container on Github Actions
sqlserver
github actions
docker
containers
external
December 16, 2021
Implementing zip archiving in Golang: unzipping
golang
zip
November 23, 2021
Benchmarking esbuild, swc, tsc, and babel for React/JSX projects
javascript
parsing
typescript
esbuild
swc
babel
external
November 13, 2021
Building a fast SCSS-like rule expander for CSS using fuzzy parsing
javascript
css
parsing
typescript
scss
less
external
October 31, 2021
Exploring PL/pgSQL part two: implementing a Forth-like interpreter
postgres
plpgsql
forth
interpreters
databases
October 29, 2021
Exploring PL/pgSQL: Strings, arrays, recursion, and parsing JSON
postgres
plpgsql
recursion
parsing
json
databases
October 24, 2021
Experimenting with column- and row-oriented datastructures
python
data structures
external
October 18, 2021
Notes on running Electron
electron
selenium
javascript
external
October 13, 2021
Enumerating and analyzing 40+ non-V8 JavaScript implementations
javascript
nodejs
compilers
interpreters
September 21, 2021
Writing a simple JSON library from scratch: a tour through modern C++
json
parsing
c++
August 26, 2021
Parser generators vs. handwritten parsers: surveying major language implementations in 2021
parsing
compilers
interpreters
August 21, 2021
Practical? Common Lisp on the JVM: A quick intro to ABCL for modern web apps
common lisp
lisp
armed bear common lisp
java
jvm
August 5, 2021
Writing an efficient object previewer for JavaScript
javascript
json
external
July 15, 2021
React without webpack: fast path to a working app from scratch
javascript
react
webpack.esbuild
parcel
external
July 8, 2021
Controlled HTML select element in React has weird default UX
python
javascript
react
external
June 25, 2021
Leaders, you need to share organization success stories more frequently
leadership
management
humans
transparency
June 22, 2021
Languages you can run in the browser, part 1: Python, JavaScript, SQLite
python
javascript
browser
external
June 17, 2021
Coolest hard-tech companies in NYC 2021
startups
companies
nyc
June 4, 2021
Writing a Jinja-inspired template library in Python
python
parsing
template-library
May 23, 2021
Learning a new codebase: hacking on nginx
hacking
nginx
c
April 4, 2021
How to get better at recursion
functional-programming
recursion
learning
March 7, 2021
Extending gosql to supporting LIMIT and OFFSET
sql
oss
hacking
golang
databases
January 23, 2021
2020
The year in books: 20 to recommend in 2020
books
reading
December 27, 2020
Static analysis with semgrep: practical examples using Docker
semgrep
static analysis
docker
December 20, 2020
Emulating linux/AMD64 userland: interpreting an ELF binary
emulators
assembly
linux
x86/amd64
golang
November 26, 2020
The impact of management teams as a decision-making group, in startups and enterprise
leadership
management
startups
enterprise
November 11, 2020
Standard ML in 2020
sml
ocaml
October 25, 2020
The case for comments in code
development
teams
September 7, 2020
Writing a simple Python compiler: 1. hello, fibonacci
python
compilers
cpython
c
August 16, 2020
A single-node Kubernetes cluster without virtualization or a container registry
kubernetes
docker
k3s
fedora
recipe
July 25, 2020
Generating a full-stack application from a database
golang
postgres
mysql
sql
typescript
react
f-sharp
June 14, 2020
Generating a REST API from a database
dbcore
golang
postgres
mysql
sql
f-sharp
June 6, 2020
RFCs and asynchronous-first culture
communication
management
leadership
May 16, 2020
Writing a SQL database from scratch in Go: 4. a database/sql driver
golang
databases
sql
postgres
May 10, 2020
Writing a SQL database from scratch in Go: 3. indexes
databases
golang
sql
postgres
May 1, 2020
Writing a SQL database from scratch in Go: 2. binary expressions and WHERE filters
databases
golang
parsing
sql
postgres
April 12, 2020
Studying foreign languages with inbox zero
learning
korean
April 4, 2020
Reviewing the Surface Book 2
windows
review
hardware
March 18, 2020
Writing a SQL database from scratch in Go: 1. SELECT, INSERT, CREATE and a REPL
databases
golang
parsing
sql
postgres
March 6, 2020
A minimal REST API in Java
java
rest
api
jersey
jooq
postgres
February 1, 2020
2019
Writing a lisp compiler from scratch in JavaScript: 6. an x86 upgrade
javascript
lisp
compilers
x86/amd64
December 8, 2019
Confusion and disengagement in meetings
communication
management
November 30, 2019
Interpreting Go
golang
interpreters
parsing
October 12, 2019
Administering Kubernetes is hard
orchestration
aws
docker
kubernetes
September 30, 2019
Unit testing C code with gtest
c
cmake
ctest
testing
August 31, 2019
Writing an x86 emulator from scratch in JavaScript: 2. system calls
emulators
javascript
x86/amd64
syscalls
July 20, 2019
Writing a lisp compiler from scratch in JavaScript: 6. LLVM system calls
javascript
compilers
llvm
syscalls
June 22, 2019
Writing an x86 emulator from scratch in JavaScript: 1. a stack and register machine
javascript
assembly
amd64
linux
x86_64
emulators
May 21, 2019
Tail call elimination
tail call optimization
interpreters
compilers
tco
May 14, 2019
Writing a lisp compiler from scratch in JavaScript: 4. LLVM conditionals and compiling fibonacci
javascript
compilers
llvm
lisp
May 4, 2019
Responsibility and ownership
teams
communication
management
April 30, 2019
Interpreting TypeScript
typescript
interpreters
parsing
node
javascript
April 14, 2019
Writing a web server from scratch: 1. HTTP and sockets
web servers
javascript
http
sockets
nodejs
April 6, 2019
Writing a simple JSON path parser
json
parsing
javascript
March 27, 2019
Writing a lisp compiler from scratch in JavaScript: 3. LLVM
compilers
llvm
javascript
lisp
March 10, 2019
AOT-compilation of Javascript with V8
javascript
c++
compilers
rust
typescript
v8
February 26, 2019
Transparency and communication on small teams
communication
teams
management
January 22, 2019
Windows
windows
desktop
linux
January 20, 2019
Writing a lisp compiler from scratch in JavaScript: 2. user-defined functions and variables
javascript
lisp
compilers
x86/amd64
January 20, 2019
2018
Make small changes and solve the problems you have
management
communication
leadership
December 27, 2018
Writing a lisp compiler from scratch in JavaScript: 1. lisp to assembly
assembly
lisp
compilers
javascript
x86/amd64
linux
November 20, 2018
On NYC, Tokyo and Seoul
travel
cities
asia
October 20, 2018
Why (and how) to read books
books
reading
September 26, 2018
Compiling dynamic programming languages
scheme
compilers
d
c++
javascript
v8
September 2, 2018
btest: a language agnostic test runner
d
testing
August 4, 2018
Writing to be read
writing
documentation
reading
May 18, 2018
Writing a simple JSON parser
json
parsing
python
May 6, 2018
Finishing up a FreeBSD experiment
freebsd
laptop
arch
desktop
linux
April 28, 2018
Book Review: ANSI Common Lisp
common lisp
paul graham
books
March 25, 2018
Starting a minimal Common Lisp project
common lisp
asdf
quicklisp
sbcl
March 5, 2018
Interview with the D Language Blog: BSDScheme
d
scheme
external
January 20, 2018
First few hurdles writing a Scheme interpreter
scheme
interpreters
d
lisp
January 10, 2018
2017
Deploying FreeBSD on Linode unattended in minutes
freebsd
linode
vps
March 11, 2017
2016
Walking through a basic Racket web service
racket
scheme
web servers
lisp
December 29, 2016
Feedback
As always, please
email
or
tweet me
with questions, corrections, or ideas!