Welcome to The Weekly, back from summer vacation! While I did miss posting I’m still not beating myself up about getting out of the routine.
I’m currently on a flight back from the VLDB conference in London. I had a really great time! The papers were interesting, I got to catch up with a a handful of former coworkers, and I even gave a talk in our sponsor slot on what I’ve been working on at my day job! More than anything, though, it was awesome getting to pick the brains of a lot of academics and practitioners that spend their day thinking about the same problems that I do. There’s a lot we can all learn from each other.
The Weekly will be a bit different over the next few installments. I did a much better job than last year of collecting links that were interesting to me during my writing hiatus. Each post will have a few entries from the summer in addition to anything new I read that week.
Without further ado, on to the links!
Databases
-
Making Postgres distributed with FoundationDB (Fabian Lindfors): I realized recently that the OLTP query engines are a lot like browser engines. Writing a good one from scratch can take years because it requires handling a ton of edge cases (rewrite rules for query engines, vagaries of the HTML/CSS specs for browsers) and painstaking performance optimization. The easier path when building a product is to integrate the industry standard and focus on your actual value proposition.
Browser engines have Chrome; query engines have Postgres. So many systems either build directly on top of it (Neon, Aurora, Yugabyte) or try to emulate it as closely as possible (CockroachDB). I found this project to be a pretty cool experiment, and as the article says, “a testament to just how extensible Postgres is.”
-
Dynamo, DynamoDB, and Aurora DSQL (Marc Brooker): Compared to web developement or even programming languages theory and implementation, there’s not that much written online from folks deep in the guts of database systems. Marc’s blog is an absolute joy to read, and I learn more than a few new things from every one of his posts.
I’d read the Dynamo paper a few years ago and never even realized that DynamoDB was a completely different system than the one that was described. The evolution of distributed OLTP databases at Amazon over the past 15 years was fascinating. Marc’s humility that back in 2010 nobody really knew how to build systems in the way we do now was also refreshing. It’s okay to not get something “right” on the first try; Innovation is all about iteration.
Tech and Society
-
Advice for Tech Non-Profits (Mitchell Hashimoto): It felt like this advice boils down to the fact that folks in software often forget that so many things in life are all about interpersonal relationships, which fundamentally don’t scale in the same way that software does. In some ways, quite a simple takeaway, but it’s an important reminder that we could all keep in mind.
-
The evasive evitability of enshittification (Avery Pennarun): An overview of enshittification, and what founders can do to avoid it. Product growth almost always slows. It’s up to founders — if they stay in control — to choose to run the business sustainably without compromising the core product or user experience.
Avery presents a much healthier and even-keeled description of “founder mode” without mentioning Brian Chesky, Paul Graham, or the term itself. Founders have the clearest view of the kinds of things a company did (and didn’t do) in order to earn the trust of users and customers and get to the place that it did. Building a product is riddled with Chesterson’s fences that often knocked down if (and when) optimizing next quarter’s profits becomes the priority over long-term user trust and satisfaction.
-
Subscribe to my sponsors-only monthly newsletter (Simon Willison): I’ve long been interested in open-source business models. In addition to being an open-source maintainer, Simon has also become one of the more important and prolific journalistic voices in AI over the past few years. It’s exciting to see him take a somewhat innovative tach in letting people pay him to send them less content than his famous link-blog firehose.
Software Engineering
-
TODOs aren’t for doing (Sophie Alpert): At my current job this is very much our philosophy around TODOs in code: either you handle something “soon” somewhere in the stack of current PRs, or you’ll handle it “someday”, whenever you or someone else gets around to tidying up that area of the codebase. Tying absolutely everything to a ticket in JIRA can often be counterproductive.
-
Why Was Apache Kafka Created? (Stanislav Kozlovski): I love these mini-histories into open-source technology. I didn’t learn anything profound, but it’s always interesting reading about how a given piece of technology came to be and why it’s shaped in the way that it is.