Newsletters

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.

That's Not an Abstraction

October 27, 2024

In this issue, explore the complexities of abstraction in coding, the critical role of comments in software, best practices for forking open-source projects, and the trade-offs of observability systems. Plus, learn how geopolitics can impact digital domains.

How Discord Reduced Websocket Traffic by 40%

October 20, 2024

In this issue, discover how Discord slashed websocket traffic by 40%, explore pathfinding algorithms with an A* tutorial, and learn about WordPress.org's controversial takeover of a plugin. Plus, insights on upgrading Uber's MySQL fleet.

Practices of Reliable Software Design

October 13, 2024

In this issue, explore innovative software design practices, the Copenhagen Book for web authentication, insights on deployment challenges, the CAP Theorem, and a deep dive into the performance of data structures like B-trees.

It's hard to write code for computers

October 06, 2024

In this issue, we explore the intricacies of coding for humans, insights from software design philosophy, the nuances of terminal colors, and strategies for improving application availability.

Digital signatures and how to avoid them

September 29, 2024

In this issue, explore the limitations of digital signatures, Discord's bandwidth improvements, and why payments engineers should rethink state machines. Plus, insights on migrating from Redis to SQLite and tips for on-call success.

On Being A Senior Engineer

September 22, 2024

This issue explores the essence of senior engineering, the challenges of concurrency, tech FOMO, an intro to assembly for high-level programmers, and essential software development habits. Dive in for valuable insights.

Basic thing

September 15, 2024

In this issue, we explore essential insights on software project practices, double-entry accounting for fintech, loop detection in graphs, balancing engineering contradictions, and a design comparison between Windows NT and Unix.