Skip to content
José da Cruz

Enterprise Architect, and Life Thinker

José da Cruz

Enterprise Architect, and Life Thinker

architecture

How ‘Seen’ Receipts Actually Work: Avoiding the Write Amplification Trap

josedacruz, August 9, 2026August 9, 2026

TL;DR: A “seen” checkmark looks like the simplest feature in a chat app, but the naive way to build it — storing a read flag for every message and every recipient — creates a database write explosion that gets worse as your group chats grow. The fix most real apps…

Continue Reading
architecture

Chesterton’s Fence in Code Reviews: Why You Should Never Delete What You Don’t Understand

josedacruz, August 7, 2026August 7, 2026

TL;DR: When you find a weird piece of code and you don’t know why it’s there, resist the urge to delete it right away. Chesterton’s Fence is a simple rule of thumb: don’t tear down a fence until you understand why someone put it up. In code review, that means…

Continue Reading
architecture

The Meeting Before the Meeting: How Real Architecture Decisions Actually Get Made

josedacruz, August 7, 2026August 7, 2026

TL;DR: Most architecture decisions aren’t actually made in the meeting where they get announced — they’re made in smaller conversations that happen before it. If you only prepare for the official meeting, you’re showing up after the real work is already done. These five rules help you work with that…

Continue Reading
architecture

The Circuit Breaker Pattern: How to Stop One Failing Service from Taking Down Everything Else

josedacruz, August 6, 2026August 6, 2026

TL;DR: A circuit breaker stops your system from calling a service that’s already struggling, so one slow dependency doesn’t drag down everything connected to it. It works by watching for failures, “tripping” to block calls once things get bad, and then carefully testing whether the dependency has recovered before letting…

Continue Reading
architecture

How Distributed Locks Actually Work (And Why They’re Harder Than They Look)

josedacruz, August 5, 2026August 5, 2026

TL;DR: A distributed lock stops two servers from doing the same risky thing at the same time, like selling the last concert ticket twice. The tricky part isn’t getting the lock — it’s what happens if the worker holding it crashes, freezes, or runs slower than expected. Get the timeout…

Continue Reading
architecture

Why Nobody Wants to Own the Shared Library (And What It Costs You)

josedacruz, August 4, 2026August 4, 2026

TL;DR: Shared libraries usually start with good intentions: one team pulls duplicate code into a common package so everyone benefits. The problem is nobody assigns a permanent owner, so when the original team moves on, the library keeps running but nobody is responsible for fixing it. This piece walks through…

Continue Reading
architecture

The Rule of Three: A Practical Heuristic for When to Actually Build That Abstraction

josedacruz, August 3, 2026August 3, 2026

Every developer has felt this itch: you copy a chunk of code for the second time, and something in your brain screams “this is wrong, I should make this reusable.” So you stop, build a shared function or class, and wire everything to use it. Sometimes that’s a great move….

Continue Reading
architecture

Reinforcing vs. Balancing Feedback Loops: Why Retries Can Make an Outage Worse

josedacruz, August 3, 2026August 3, 2026

You get paged at 2am. A payment service is running slow. You watch the dashboard, and something strange happens: the more you look at it, the worse it gets. Error rates climb. Latency climbs. Then, ten minutes after the first alert, the whole checkout system goes down — not because…

Continue Reading
architecture

How Instagram-Style Feeds Work: Fan-Out on Write vs. Fan-Out on Read

josedacruz, August 2, 2026August 2, 2026

Imagine you’re on the backend team at a small photo-sharing app called Snapstream. Every user has a home feed: a scrolling list of photos from the people they follow, newest first. For your first 10,000 users, this is easy. For your next 10 million, it turns into one of the…

Continue Reading
architecture

The Strangler Fig Pattern: How to Replace a Legacy System Without a Big-Bang Rewrite

josedacruz, July 30, 2026July 30, 2026

Every few years, a team decides their old system is too messy to keep working with, and someone says the magic words: “Let’s just rewrite it from scratch.” Six months later, the rewrite still isn’t done, the old system still has bugs nobody is fixing because “we’re replacing it soon…

Continue Reading
  • Previous
  • 1
  • …
  • 3
  • 4
  • 5
  • …
  • 25
  • Next
  • architecture (154)
  • artificial-intelligence (6)
  • books (2)
  • courses (4)
  • decision-frameworks (4)
  • finances (1)
  • java (8)
  • life-improvement (20)
  • metrics (3)
  • observability (2)
  • puzzles and challenges (3)
  • reviews (1)
  • security (8)
  • spring-boot (36)
  • Systems Thinking (3)
  • GitHub Weekly: MCP Tools Trending Right Now (September 28 – October 4, 2026)
  • The Bulkhead Pattern: Why One Slow Dependency Shouldn’t Sink the Whole Ship
  • Essential Reading: A Philosophy of Software Design — Fighting Complexity One Module at a Time
  • GitHub Weekly: Top 10 Trending Repos (September 21 – September 27, 2026)
  • The Volunteer Tax: Why Raising Your Hand in a Meeting Makes You the Permanent Owner
©2026 José da Cruz | WordPress Theme by SuperbThemes