Aaron Brethorst’s recent piece argues that domain expertise is the ultimate moat in an AI-driven world. He is spot on. AI has commoditised code generation, shifting the bottleneck from “can you build it” to “do you actually understand the problem well enough to know if the output is right.”

But a deep domain moat introduces a brutal operational reality: it drastically shrinks your talent pool. Finding engineers who understand high-performance architecture and niche industry nuance is like searching for a unicorn.

If you rely solely on finding people who already hold the entire domain model in their heads, you cannot scale. You have to build the bridge for generalist engineers.

AI as a Shortcut for Requirements

We are seeing domain experts with zero software background use AI to build functional prototypes. The code they produce is usually terrible, meaning it is unoptimised and poorly structured. However, these prototypes go a long way in assisting with Requirements Definition. Instead of a dry text document, experts can now hand engineers a working, albeit messy, proof of concept. The AI allows the expert to show, rather than just tell, what right looks like.

Democratising the Domain

My approach has always been to document and template ruthlessly so that complex domain expertise can be easily digested by non-domain engineers.

  • Establish a Common Lexicon: Maintain a strict terms and definitions wiki. Everyone has to share exact terminology. If two words mean slightly different things in your industry, that distinction must be ironclad.
  • Onboarding “101” Classes: Run foundational sessions that explain the business model, the user, and the core problems you solve before an engineer ever looks at a repository.

Execution: The RAD/JAD Model

When you bridge the gap between generalist engineers and domain experts, your execution model must adapt to catch subtle, expensive domain errors early.

  • Release Early and Often: Do not build in a silo. I take the approach of using a combined Rapid Application Development (RAD) and Joint Application Development (JAD) model to further integrate experts and engineers into a continuous, collaborative feedback loop.
  • Elevate UAT: Generalist engineers can write unit tests to ensure the code does not break technically. Only the domain expert can run User Acceptance Testing (UAT) to ensure the business logic is actually correct. Testing must heavily prioritise UAT as the ultimate gatekeeper.

The moat is real, but a moat is useless if your own team cannot cross it. Dictate the lexicon, template the knowledge, and use iterative delivery to turn specialised domain expertise into a scalable engineering asset.