Newsletters

Saving Millions on Logging

February 19, 2023

In this issue, explore strategies for saving on logging costs, tackling technical debt, understanding programming language specs, and effective caching methods. Plus, insights on building a cross-platform AR runtime.

How a single line of code brought down a rocket launch

February 12, 2023

In this issue, we dive into how a single line of code halted a rocket launch, explore SQL window functions for ranking, and discuss the significance of state in programming philosophies. Plus, discover insights on tag systems and using GPT for enhanced note-taking.

Contracts you should never sign

February 05, 2023

This issue covers essential insights on contracts, asynchronous computing at Meta, and the count-distinct problem. Plus, discover PageRank applications and a guide to using Pandas effectively.

What we look for in a resume

January 29, 2023

In this issue, we explore resume evaluation insights, debugging strategies for engineers, the complexities of floating point problems, exciting hardware advancements, and a nostalgic look at the Apple Lisa's legacy.

1500 Archers on a 28.8: Network Programming in Age of Empires

January 22, 2023

This issue explores the intricacies of network programming in Age of Empires, the evolution of web browser engines, the beloved PNG format, and insights on writing your own operating system. Don’t miss the curated design patterns.

Things they didn't teach you about Software Engineering

January 15, 2023

In this issue, explore essential insights into software engineering beyond the classroom. Discover the importance of corporate legibility, effective logging practices, and even a fun take on designing a powerful Twitter server.

8 Hard Truths I learned when I got laid off from my SWE job

January 08, 2023

Happy 2023. Dive into this week’s top reads: explore hard truths about layoffs, avoid double payments in distributed systems, and demystify HTTP/3 prioritization. Plus, tips for becoming a better developer and a nostalgic look at historical code.

What my life would be without programming

December 18, 2022

In this issue, we explore the impact of programming on our lives, delve into Product Engineering, dissect log analysis, and discuss strategies to combat technical debt. Plus, insights on Git 2.39 and Lichess's Scala update.

Abstraction is Expensive

December 11, 2022

In this issue, explore the hidden costs of abstraction in system design, the importance of naming in software development, and the challenges of server-side caching. Plus, dive into the complexities of certificates and PKI.

Cache invalidation really is one of the hardest problems in computer science

December 04, 2022

This issue explores cache invalidation challenges, the architecture of Mastodon, and the evolution of I/O performance. Dive into SQL static analysis at Meta and a gentle guide to Domain Driven Design for better development practices.

The Distributed Computing Manifesto

November 27, 2022

In this issue, explore the transformative insights of the Distributed Computing Manifesto, master Flexbox with an interactive guide, and discover the benefits of estimated review times for pull requests. Plus, dive into Meta's Precision Time Protocol migration.

Stop lying to yourself – you will never “fix it later”

November 20, 2022

This issue explores a range of topics from the pitfalls of quick fixes in code to the allure of functional programming. We also dive into misconceptions about time, the origins of "boilerplate code," and Meta's new source control tool, Sapling.

In defense of linked lists

November 13, 2022

This issue explores the nuanced perspectives on linked lists, the application of platform engineering in serverless environments, and the complexities of open source software. Plus, insights on containers and software development history.

Four Cornerstones of CPU Performance

November 06, 2022

In this issue, explore CPU performance insights, learn how to reduce BigQuery costs significantly, and discover how Instagram enhances user experience with machine learning. Plus, tips on effective communication for developers.

Faster hardware is a bad first solution to slow software

October 30, 2022

This issue explores key insights on software performance, reliability, and development practices. Discover why faster hardware isn't the answer, learn about CORS, and tackle common estimation pitfalls.

When life gives you lemons, write better error messages

October 23, 2022

This week’s issue explores the art of crafting effective error messages, strategies to excel as a developer, the journey to building resilient systems at Intercom, and insights into time series forecasting methods.

Mike Acton’s Expectations of Professional Software Engineers

October 16, 2022

In this issue, explore valuable insights on software engineering expectations, resilient design, web performance, and secure API development. Plus, don’t miss the upcoming JavaScript webinar.

Facts about State Machines

October 09, 2022

This week's newsletter dives into state machines, the rule of six for cleaner code, effective software engineering practices, and the nuanced approach to storing UTC. Plus, discover performance boosts with Huge Pages for code.

Aging programmer

October 02, 2022

In this issue, explore reflections from a seasoned programmer, the history of ARM chips, cost-saving strategies for server management, best practices for pull requests, and insights on mitigating multitenancy issues.

How I’m a Productive Programmer With a Memory of a Fruit Fly

September 25, 2022

In this issue, explore the evolution of programming with productivity tips, a deep dive into scaling Git's garbage collection, hands-free coding solutions, backend complexities, and software estimation strategies.