Newsletters

Distributed Locking: A Practical Guide

March 23, 2025

This issue features insights on distributed locking strategies, PostgreSQL best practices, advanced git commands, function length considerations, and a critique of a flawed commit message. Enhance your coding efficiency and practices.

What Makes Code Hard To Read

March 16, 2025

This issue dives into code readability, essential software architecture patterns for distributed systems, the importance of fixing flaky tests, and an exploration of Linux kernel fundamentals. Don't miss insights on IO device latency and more.

Bloom Filter: A Deep Dive

March 09, 2025

This issue explores powerful technical concepts, from Bloom filters and succinct data structures to Amazon S3's durability and the value of simple architectures. Plus, learn strategic frameworks for software engineering decisions.

How Core Git Developers Configure Git

March 02, 2025

This issue features insights on Git configurations from core developers, a deep dive into currying, the implications of network protocols, and a unique analysis of kebab quality near train stations. Enjoy the read.

A calculator app?

February 23, 2025

This issue explores the intricacies of software development with deep dives into the Android calculator app, LLM workflows, XOR operations, hash functions, and effective code review strategies. Join us for insightful reads.

The Quest to Understand Metric Movements

February 16, 2025

In this issue, explore root-cause analysis for metric changes, dive into Meta's hyperscale infrastructure, learn voice coding techniques, and discover essential habits for junior engineers. Plus, uncover modular monolithic architecture insights.

How are images stored?

February 09, 2025

In this issue, we delve into image storage, the impact of learning Assembly on coding skills, the efficiency of greedy algorithms, leap seconds in data centers, and developer philosophies for juniors. Explore these insights.

Serving a billion web requests with boring code

February 02, 2025

In this issue, explore the art of building reliable systems with "boring" tech, delve into idempotency strategies, discover a groundbreaking sorting algorithm, and learn about service reliability metrics. Don't miss it.

Mistakes You Have to Make Yourself

January 26, 2025

In this issue, explore the humorous yet enlightening mistakes every programmer must make, reclaim your role as a software engineer in the age of AI, and uncover software testing anti-patterns. Plus, dive into compression algorithms and the intricacies of concurrency.

Everything I Know About Shipping Code Faster

January 18, 2025

In this issue, explore strategies to boost coding efficiency, rethink A/B testing with the multi-armed bandit algorithm, and learn about the importance of effective software documentation. Plus, dive into fascinating software folklore and the nuances of cosine similarity.

Mistakes engineers make in large established codebases

January 12, 2025

In this issue, we delve into best practices for navigating large codebases, explore a major outage at Canva, and discuss the future of AI with intelligent agents. Plus, insights on coding with LLMs and defensive programming strategies.

Systems Ideas that Sound Good But Almost Never Work

January 05, 2025

Welcome back. This issue features five standout articles on systems design, Turing machines, debuggers, static search trees, and long-term software development practices. Dive in for insights that can elevate your coding game.

How concurrecy works: A visual guide

December 22, 2024

Hello. 🎉 In this final issue of 2024, explore concurrency visualization, Ada Lovelace's groundbreaking program, strategies for migrating complex systems, terminal program rules, and a look at IBM's executive war room. Enjoy your break.

Writing down and searching through every UUID

December 15, 2024

This issue explores the evolving role of AI in tech, the challenges of rendering UUIDs, the distinction between true abstractions and layers of indirection, insights on AI-assisted coding, and a retrospective on a software engineer's growth.

Storing times for human events

December 08, 2024

This issue dives into practical insights on software challenges, from storing event times effectively to modernizing legacy APIs. Plus, explore the importance of collaboration in tech and the value of continuous learning. Enjoy.

Legacy Shmegacy

December 01, 2024

In this issue, dive into David Reis's thoughts on legacy code, explore a framework for modern CSS support, and discover Hexagonal Architecture. Plus, learn about WeTransfer's growth and a frosted glass effect tutorial.

How Netflix Built Self-Healing System to Survive Concurrency Bug

November 24, 2024

In this issue, we explore Netflix's innovative self-healing system for concurrency bugs, dive into the fascinating world of binary vector embeddings, and reflect on the origins of SQL. Plus, discover essential software development habits.

Exploring the browser rendering process

November 17, 2024

In this issue, we explore the intricate browser rendering process, AWS Lambda's evolution over 10 years, and essential insights on Postgres. Plus, discover Unicode's unique title case characters.

Weird Lexical Syntax

November 10, 2024

In our 600th issue, we celebrate over 11.5 years of insights. Discover unique programming syntax, project efficiency, Cloudflare's architecture, strategies to minimize distractions, and a fresh take on programming language energy use. 🎉

The weirdest timezone

November 03, 2024

In this issue, dive into the quirks of timezones, explore the evolution of shadow techniques in gaming, discover the trade-offs in clustering algorithms, and unravel the significance of probability in queueing theory. Plus, learn about the benefits of using Cursor for coding.