← All posts

The Architecture–AI Bridge

How Spatial Design Training Changed the Way I Build Software

How Spatial Design Training Changed the Way I Build Software

Most software engineers learn to code by writing logic: if this, then that, for each item in array, while condition is true. They see software as a series of instructions executed over time.

But because I spent years designing physical buildings in Revit and AutoCAD before I ever touched Python or C++, I don't see software as a timeline of instructions. I see it as a space.

Software as Architecture

When I architect a new AI system, I don't start by writing functions. I start by drawing a floor plan.

  • The Database (The Foundation): Where is the heavy data sitting? How does the structural load (the query volume) bear down on it?
  • The API Layer (The Corridors): How does data circulate through the building? Is the corridor wide enough to handle the traffic, or is it a bottleneck?
  • The Authentication (The Security Doors): Who has the keys to enter which room?
  • The Frontend UI (The Facade & Finishes): What is the user's emotional experience when they interact with the exterior of the system?

The Concept of 'Clash Detection' in Code

In architecture, we use tools like Navisworks to perform Clash Detection. You overlay the HVAC model on the Structural model and run a test to see if a duct intersects a steel beam.

I apply this exact same methodology to software engineering. Before writing a feature, I mentally overlay the "Data Model" on top of the "UI Component Model" to see if they clash.

If my React component expects a deeply nested JSON object, but my database is structured relationally, I have a clash. Instead of writing messy transformation functions (the equivalent of drilling a hole through a structural beam to pass a pipe), I re-design the structure.

Why This Matters for Agentic AI

This spatial approach is incredibly useful when building multi-agent AI systems.

An LLM can only hold so much context at once (its "room"). If you try to force an LLM to write an entire application in one prompt, you are asking it to build a skyscraper without walls. It will collapse under its own weight.

Instead, you use spatial design. You give the Orchestrator Agent the "Master Plan." You put the Coding Agent in a specific "room" with only the tools (the MCP server endpoints) it needs. You put the Testing Agent in a separate room to review the output.

By defining the space, the boundaries, and the circulation between agents, you create software that is resilient, scalable, and—most importantly—comprehensible.

← All posts