Issues » #524

#524 – May 29, 2023

Cognitive Load Developer's Handbook

This paper discusses a fundamental thinking tool that would enable us to create simple yet maintainable applications. We would look at every decision, every trendy buzzword, and every fancy technology through the lens of cognitive load.

You Don't Always Need Indexes

Sometimes you have a lot of data, and one approach to support quick searches is pre-processing it to build an index so a search can involve only looking at a small fraction of the total data. The threshold at which it's worth switching to indexing, though, might be higher than you'd guess.

How we reduced our AWS bill by seven figures

Chime developed a highly available NAT instance solution with standby managed NAT Gateways to save on exorbitant data processing charges.

50 years in filesystems

Progress is sometimes hard to see, especially when you have been part of it or otherwise lived through it. Often, it is easier to see by comparing modern educational material and the problems discussed with older material. Or look for the research papers and sources that fueled the change. So this is what we do.

The Simple Joys of Scaling Up

Explores why scale-out became so dominant, whether those rationales still hold, and some joyful advantages of scale-up architecture.

How Much Memory Do You Need to Run 1 Million Concurrent Tasks?

In this blog post, I delve into the comparison of memory consumption between asynchronous and multi-threaded programming across popular languages like Rust, Go, Java, C#, Python, Node.js and Elixir.

Memory Allocation

In this post I'm going to introduce you to the basics of memory allocation. Allocators exist because it's not enough to have memory available, you need to use it effectively. We will visually explore how simple allocators work.


Join over 18,800 readers for a free weekly email with fresh news, articles and tutorials.