Blogs / Personal blogs

Philip O'Toole

philipotoole.com

Software engineering, distributed systems, databases, and the teams that build them

Popular posts
9
Total points
2,309
HN comments
932
Rank
#690 personal

Visit philipotoole.com → RSS feedOn Hacker News Sep 2015 – Oct 2026

Databases & Data 5Systems & Performance 3Software Engineering 3Life, Learning & Writing 2Open Source 1Programming Languages 1

1

I found a bug in SQLite

rqlite is a lightweight, open-source, distributed relational database written in Go, which uses SQLite as its storage engine. Recently I introduced a high-performance write-path into rqlite and, to my great surprise, it exposed a bug in SQLite. The SQLite team quickly addressed the issue but let's take a look at the…

2

Twelve years of distributed SQLite

In September 2014 I published a short post announcing rqlite. The idea was simple: take SQLite, put a Raft log in front of it, and replicate every write to a cluster so that the loss of a node did not mean the loss of the data. The source went on GitHub that same weekend. As…

3

Start your meetings at 5 minutes past

I work as an Engineering Manager at Google, and my teams practice a simple habit - we book all meetings to start at five minutes past the hour (or half hour). This works better than trying to finish five minutes early. Meetings often don't finish on time, and the impact is highest with back-to-back meetings.…

4

How rqlite is tested

rqlite is a lightweight, open-source, distributed relational database written in Go, and built on SQLite and Raft. With its origins dating back to 2014, its design has always prioritized reliability, and quality. The robustness of rqlite is also a testament to its disciplined testing strategy: after more than 10 years…

5

Building rqlite 9.0: Cutting disk usage by half

rqlite is a lightweight, open-source, distributed relational database written in Go. It is built on the Raft consensus protocol and uses SQLite as its storage engine. Development of 9.0 has begun and aims to reduce disk usage by approximately 50%. This goal will be achieved through a high-level design overhaul…

6

Talking to LLMs has improved my thinking

I’ve been surprised by - and enjoy - one aspect of using large language models more than any other. They often put into words things I have long understood, but could not write down clearly. When that happens, it feels less like learning something new and more like recognition. A kind of “ok, yeah" moment.…

8

400 days of Go

It's been 418 days since my first Github commit of Go code. In that time I've written a Syslog-to-Kafka producer, a Raft-based distributed SQLite database, a near real-time log search system, and become a core developer of InfluxDB. So if there is one word to summarize Go, it's productive. I haven't had the same burst…