Systems Ideas that Sound Good But Almost Never Work

#607 – January 05, 2025

"let's just..." scenarios

Hello,

We are back after a short break. I would've thought that it will be quiet over Christmas but so many excellent articles popped up that it was hard to pick the top five.

Systems Ideas that Sound Good But Almost Never Work
9 minutes by Steven Sinofsky

Most common engineering pitfalls and anti-patterns, articulated through various "let's just..." scenarios. Steven, drawing from extensive experience, explains why seemingly simple solutions like making systems pluggable, adding APIs, introducing abstractions, implementing cross-platform compatibility, or adding security controls later often fail in practice.

Minimize Apache Kafka Data Streaming Costs and Operations With WarpStream
sponsored by WarpStream

WarpStream is a drop-in replacement for Apache Kafka with a stateless architecture built on object storage. That means no interzone networking fees, no disks to manage, and zero ops auto-scaling. It runs in your cloud, so no cross-account IAM access or privileges are needed and data never leaves your environment. Companies save over 80% compared to self-hosted Kafka and AWS MSK.

Turing Machines
17 minutes by Sam Rose

An interactive introduction to Turing machines, the theoretical foundation of modern computing. The Turing machine, despite its simple design with just four parts and five instructions, proved capable of performing any computation possible, laying the theoretical foundation for modern computers.

Demystifying Debuggers
6 minutes by Ryan Fleury

The article introduces a series about debugger architecture. It explains that debuggers are complex tools that interact with multiple parts of computing systems, offering far more utility than just fixing broken code.

Static search trees: 40x faster than binary search
about 1 hour by Ragnar Koerkamp

This article discusses optimizing static search trees for high-throughput searching of sorted data. Key improvements include using S+ trees with batched queries, prefetching, and query interleaving to balance CPU and memory-bound operations.

On Long Term Software Development
16 minutes by Bert Hubert

Bert discusses best practices for long-term software development, particularly for critical systems that need to remain stable and maintainable for decades. The key recommendations include keeping code simple and regularly refactoring, carefully managing dependencies by minimizing their number and auditing them thoroughly, implementing comprehensive testing, maintaining detailed documentation about both code and system philosophy, and retaining stable development teams.

Next, we'll have a look at the top articles from 2024.

  1. Software Design Principles I Learned the Hard Way
  2. The guide to Git I never had
  3. Things You Should Never Do As A Software Engineer
  4. Database Fundamentals
  5. Good Ideas in Computer Science

And we'll wrap up with the most read article from the last issue:

Happy New Year,
Jakub 🥳

newsletters