Skip to content
The Platform ProblemEarly access

Sample

Prologue

The book opens on the warehouse floor, where technical fragmentation becomes a cost paid by the people doing the work.

At six in the morning, a warehouse operator picks up a handheld device and starts his shift.

By noon, he will have used four different systems. All of them belong to the same company. All of them were built to solve variations of the same operational problem: track a product, confirm a step, move something forward. On a slide deck they would look like one platform. In his hands, over eight hours, they do not feel like one anything.

The scan gesture that confirms a receiving action in one system requires a different sequence in the next. The feedback that tells him an action was successful appears in a different position, with a different color, after a different delay. The way an error is presented — whether it blocks or just warns, whether it clears on retry or requires a supervisor — changes depending on which screen he is looking at. None of these differences are catastrophic on their own. Each one is small enough to adapt to. What they add up to, across a full shift, is a kind of constant low-level friction: the system making him work harder than it should.

When something goes wrong — when throughput drops, when an operator makes the wrong choice, when a queue backs up — the cause that gets recorded is rarely "inconsistent system design across several engineering teams." It is classified as human error. The operational experience had absorbed the organizational fragmentation upstream and turned it into a cost the operator paid with his attention.


I spent eight years building and evolving the systems at the center of that experience. It started inside warehouse operations — the WMS domain of one of Latin America's largest commerce and logistics ecosystems. Over those years, the scope changed: from a single logistics domain to multiple, as I moved into a tech lead role across other logistics products. From there to a frontend core team responsible for the design system shared across the organization. And eventually to a platform role spanning systems that served hundreds of product teams at the company. Each time the scope changed, I expected the problems to change with it. What I found instead was that the same structural dynamic kept reappearing — larger, faster, with more teams caught inside it, and with higher stakes for everyone it touched.

The instinct to look at the whole system rather than just the local part came early and never fully turned off. What took longer to understand was that carrying a cross-functional perspective without the authority to act on it is not the same as having insight. It is its own kind of constraint — one that teaches you a lot, costs you something, and only resolves when the scope of the role finally catches up with the scope of the problem you have been trying to name.

The realization came in pieces. Good engineers. Shared libraries. Cross-team forums. Defined standards. And still, the same inconsistencies. Still, the same behaviors solved differently by different squads. Still, the same operators navigating a domain that looked like one business and behaved like several.

At some point the question changed. It stopped being: why is the code inconsistent? And became: why does the structure of how decisions are made keep producing this outcome, even when the people making them are trying to do the right thing?

That second question has a different kind of answer. It is not about better abstractions or stricter reviews or more comprehensive guidelines. It is about where decisions belong — which ones can stay local, which ones are too expensive to keep local, and what happens when the system never forces that distinction to be made explicitly.


This book is built around that answer.

It is organized in four parts. The first describes the organizational failure mode that distributed technical systems tend toward when coordinated behavior is left optional — when many teams make individually correct decisions that produce a collectively incoherent result. The second describes how shared abstractions, even well-built ones, reproduce the same problem at a different layer: promising consistency while distributing the conditions that undermine it. The third describes the architectural evolution toward a real platform — one with structural ownership, runtime control, and the beginnings of a governance model. The fourth describes the operating properties that make that architecture sustainable over time: observability, versioning discipline, and the incentive alignment that determines whether the architecture is real or theoretical.

Each part begins from a different vantage point on the same core problem. The voice changes — from tech lead to team lead to platform operator — but the problem does not. That is the point. The problem does not resolve by being elevated to a higher level of the organization. It changes shape. Understanding the shape it takes at each level is what the book is trying to produce.

It is not a guide to better tooling, better abstractions, or better shared libraries. It is an account of what happens to technical systems when they grow past the point where individual team quality determines system behavior — and what has to change structurally when it does.

The problems described here are technical in their symptoms and product decisions in their causes — made consciously, or by accumulation, by people doing their jobs well. The gap between those two things is where most of the real work lives — and where most of the learning in this book happened.

The story begins inside a frontend platform for warehouse operations. But the mechanism it reveals is not specific to that layer. The same structural dynamic — distributed teams sharing an execution surface, making locally rational decisions that produce global incoherence — appears in backend platforms, data infrastructure, mobile tooling, internal API surfaces. What changes is the layer where the fragmentation becomes visible. What does not change is why it keeps happening.

If you work on or alongside teams building or operating shared technical systems — as an engineer, a tech lead, or someone who manages the people who are — this book is for you. Not because it will give you a framework to install, but because understanding the mechanism is what makes it possible to change it.


The first thing I had to accept was also the most uncomfortable: the problem was not the code, and better code was not going to fix it. That is where this book begins.

Next: Chapter 1 — Technical Problems Are Organizational Problems