By Jamil Jadallah Inspired by the fig tree in our yard

Some thoughts on platforms

The Strangler Fig

We have a fig tree in our yard. I've been staring at it.

There's this thing that happens in Texas neighborhoods—builders will construct a house around an old oak tree. The tree was there first. The house learns to accommodate it. I keep thinking about that.

scroll to begin
01

Where it begins

The Seed in the Canopy

Here's the thing about strangler figs—they don't start in the ground.

A bird drops a seed in the branches of another tree. The seed germinates up there, in the canopy, nowhere near soil. It just... starts where it lands.

That's how most of the systems I've worked on started. Not from scratch. Growing on top of whatever was already there.

You don't tear down the old thing first. You plant something new in its branches and see what happens.

trunk canopy the seed germinates here, not in soil the host (the legacy system) still load-bearing first roots looking for grip
Sound familiar?
The new API running alongside the old one. The microservice you carved out of the monolith. The modern frontend still calling that legacy backend nobody wants to touch.
The dependency
At this stage, the new thing can't survive without the old. It's borrowing everything—context, users, credibility. That's not a problem. That's just how it starts.
02
descent aerial roots reaching for ground not there yet wrapping not attacking embracing tendrils grip the host bark — ground level —

The long part

The Roots Reach Down

Aerial roots drop from the canopy. They wrap around the host trunk—not attacking it, just... holding on. Looking for ground.

Until they find soil, the fig still needs the host for everything. Water. Stability. A place to be.

This is the part that takes forever. Both systems running. Both systems real. I actually think this might be where the interesting stuff happens—you can see them side by side.

Something I've noticed
During this phase, you're basically watering two gardens. Every feature has to work in both places. Your attention splits. It's exhausting. But also—you learn things you couldn't learn any other way.
The wrap
Routes redirected. Facades everywhere. The new system handles some requests, forwards others to the old. And here's where it gets weird—the same words start meaning slightly different things in each place.
The tension
Sometimes you spend four hours maintaining for every hour building. That ratio feels wrong but maybe it's just what this season needs. I keep asking myself: when does maintenance become the actual work?
The patience
The fig doesn't rush. Roots grow at root speed. They find their own path down. I've broken things trying to force this part.
03

The shift

Ground Contact

When the first root touches soil, something shifts. The fig can draw its own water now. It doesn't need the host the same way anymore.

This is when it gets real. The new system can stand on its own. You can't easily go back from here—not without it costing something.

The cutover isn't a moment. It's more like... a gradual transfer of weight. One root at a time. You barely notice it happening.

The host is still there. Still standing. But the balance has shifted. The new thing is carrying the load now.

ground contact self-supporting new roots spreading finding their own water LINE OF VISIBILITY
04

Different speeds

Pace Layers

Not everything moves at the same speed. Roots move slowly. Canopy responds fast. The trunk holds the middle. I think about this a lot.

FAST MEDIUM SLOW GROUND SLOW Core Ontology Shared definitions MEDIUM Data Contracts Interfaces, APIs FAST Product UI Designed to change blooms come and go branches are promises roots are definitions

Fast layers get all the attention. Slow layers provide the stability. The healthy systems I've seen respect the difference.

Fast (days/weeks)
UI components. Feature flags. A/B tests. Marketing copy. Designed to be swapped out. If it doesn't work, try something else.
Medium (months)
APIs. Data contracts. Service boundaries. These are promises to other systems. You can't just change them—you have to coordinate.
Slow (years)
Core ontology. Entity definitions. What things actually are. Change these and it ripples through everything above.

The fig knows this somehow. Its roots move in decades. Its leaves respond in days. The trunk holds the agreement between them.

05
height diameter hollow where the host was the fig stands on its own now fruit (the product) CROSS-SECTION

What's left

The Hollow Core

Eventually the host tree dies. Rots away. What's left is this hollow cylinder of strangler fig roots, standing where the trunk used to be.

The absence is still structural. You can see the shape of what was there in the negative space. I find that kind of beautiful, actually.

The old system is gone, but its shape is everywhere. Every workaround, every weird accommodation—still visible if you know where to look. That's not technical debt. That's memory.

The thing about context
The people who knew why the hollow has that particular shape? They've probably moved on. The context composted with the host. What's left is structure waiting for someone to ask about it again.
Semantic drift
The words stayed the same but the meanings wandered. "User" in the old system meant something slightly different. You only notice when you try to connect things.
Context traces
Why is this API shaped so weird? Because the host was shaped that way. The reason walked out the door three years ago. The shape is still here.
06

Inside the fig

The Internal Bloom

Here's something I didn't know until recently: a fig isn't actually a fruit. It's a flower turned inside out. All that complexity hidden behind a smooth skin.

internal flowers hundreds of them invisible from outside the only opening smooth exterior the interface SYCONIUM CROSS-SECTION

The interface hides the implementation. That's not a bug—that's the whole point. It's a kind of care, when you think about it.

The promise
The smooth exterior is basically a promise. "You don't need to know what's inside. I'll handle it." Every API makes this promise. Most of them even keep it.
The interesting part
When the interior changes but the exterior stays the same, something curious happens. The same words start carrying different freight. That's when things get interesting.
07

The one who knows

The Wasp

There's only one creature that knows what happens inside the fig. The fig wasp. It enters through this tiny opening, pollinates the flowers, and dies in there.

Without the wasp, no new figs. Without the fig, no wasp habitat. They figured this out together over millions of years. Neither works alone.

Every system has people like this. The ones who know the inside. I keep wondering—what if we found more ways to walk through it together instead of just relying on them?

On knowing
Sometimes the deepest context lives in just two or three people. That's not necessarily a problem to solve. Maybe it's an invitation to spend more time in the garden together.

The wasp isn't a user. The wasp is more like... a tender. The one who goes into the complexity and carries meaning from one place to another.

the wasp the only one who enters the interior known only to the wasp
Semantic Maintenance
The wasp's job is pollination—carrying meaning from one flower to another. Without this work, the system becomes sterile. No new growth.
The Missing Ceremony
Most teams have ceremonies for planning, delivery, learning. Few have ceremonies for maintaining shared language. The wasp work is invisible until it stops.
08

Below the surface

The Underground

Below ground, the roots keep going. They reach until they find each other. Every tree in a grove is connected down there. We just don't see it.

the network has no center when one path breaks, others carry the load 80% of the system is here ABOVE: VISIBLE BELOW: STRUCTURAL

The threads connect everything. No center, no announcements. When one path closes, others just... open. I find that reassuring. The network knows how to hold itself.

Reliability
No single point of failure. When something breaks, other paths light up. This is the network topology that keeps platforms alive when they probably shouldn't be.
Shared language
The underground is where meaning gets shared. Same nutrients, same signals, same vocabulary flowing between systems. When that works, everything works.
The invisible work
More than half the work is down here. Dependency management, compatibility, maintenance. The stuff nobody sees that keeps everything else running.
09

The naming layer

Platform Ontology

Before the roots can share nutrients, they must agree on what nutrients are. Before systems can exchange data, they must agree on what things are called.

This is the ontology. The shared definitions. The vocabulary that makes collaboration possible.

Same words, different meanings. The lines diverge. It's kind of fascinating, actually—systems developing their own dialects, like villages separated by a mountain.

When "user" means one thing in auth and another in billing, you've found something worth talking about.

SHARED ONTOLOGY Auth Service Billing Service Data Service Product Service "user" "account" "transaction" watch here all definitions flow through center no direct service-to-service naming
When it's coherent
Every service uses the same definitions. "User" means one thing everywhere. Integrations just work. You don't notice how good it is until it isn't.
When it's drifted
Each service evolved its own definitions. Same words, different schemas. Every boundary requires translation. There's something almost charming about it—until you're the one doing the translating.
The tending
Ontology doesn't maintain itself. Someone has to tend the definitions. Quiet work that nobody notices until it stops.

This is probably the thing I think about most. The vocabulary. Whether we're all talking about the same thing or just using the same words.

10

The strata beneath

Data Topology

Below the surface, the soil has layers. Each layer was deposited at a different time, serves a different purpose, and changes at a different speed.

— SURFACE — SERVING FAST DATAFLOW MED STORAGE MED SEMANTICS SLOW FOUNDATIONS SLOW depth deeper = slower to change = more costly to get wrong

Shallow layers move fast. Deep layers move slow. Trouble starts when you try to rush the deep stuff. It wants to move at its own pace.

Surface (Fast)
Serving, APIs, UIs. Deploy daily. Experiment freely. If it breaks, roll back. This is topsoil—meant to be turned over.
Subsurface (Medium)
Dataflow, storage. Pipelines and databases. Changes require coordination. Weeks, not days. The clay layer—holds moisture, resists change.
Bedrock (Slow)
Semantics, foundations. Entity definitions. What things *are*. Change here ripples upward through every layer above. Years to get right.

The fig's roots grow through all layers. But they know: push too fast through bedrock, and you crack. Move with the stratum, and you hold.

11

The tending rhythms

The Five Ceremonies

Gardens need rhythms. Not just planting and harvesting, but the quieter stuff between—pruning, watering, composting. Most teams I've worked with have four ceremonies. They're usually missing a fifth.

THE PLATFORM DISCOVERY & Planning DELIVERY & Iteration LEARNING & Validation STRATEGY & Alignment SEMANTIC MAINTENANCE the missing one ! all five keep the grove healthy

Discovery, delivery, strategy, learning—these all have meetings. Semantic maintenance doesn't have one yet. I keep wondering what it would look like if it did.

The four everyone does
Planning sprints. Shipping features. Reviewing outcomes. Setting direction. These have rituals, calendars, owners. They happen because they're on the calendar.
The quiet one
Maintaining shared definitions. Reviewing what we call things. Aligning vocabularies across teams. No meeting. No owner. Not yet, anyway.
What happens
Same words develop different meanings. Translation layers start appearing. AI, interestingly, picks up on these dialects and starts using them too. That's usually when people notice.

The wasp visits every flower. That's basically semantic maintenance—carrying meaning from one place to another. Keeping the vocabulary alive.

12

Two paths from the same root

The Great Bifurcation

tended language shared vocabulary growing together diverging dialects different meanings worth noticing the fork same starting point

From the same root, two paths. One kept tending its language. One let it drift. The grove remembers which trees had strong roots when the fork happened.

Organizations seem to be splitting along these lines. The ones who tend their vocabulary find AI actually helps them grow. The ones who don't... well. AI picks up on that too.

The map will never be the territory. But tending the map—the shared language, the vocabulary, the names of things—that's what determines which path you end up on.

So.

The strangler fig isn't a warning. It's just... how growth happens sometimes. New things embrace old things. The transition takes longer than you want. The hollow remains. And teaches, if you let it.

What I keep coming back to
The seed starts in the canopy.
The roots take their time.
The hollow is still structural.
The wasp tends the meaning.
The underground connects everything.
The grove rewards patience.
The missing ceremony
Semantic maintenance. Keeping the language aligned. The fifth ceremony—after planning, delivery, learning, strategy. Might be the most interesting one to figure out.

Anyway. The grove will still be here. Growing slowly, like groves do.