Hello, I'm Salah.

I help engineering teams grow up.

By day I'm VP of Engineering at Salla, where a team I joined at 13 people is now 170+ engineers, building commerce software for 80,000+ merchants.

This is where I write it all down the hiring decisions, the architecture bets, the data, and the slow turn toward AI-first while it's still fresh enough to be honest about.

I write under my own name, because the work outlasts the title.

Engineering leadershipScaling teamsAI-assisted engineeringBuilding in KSA
Currently working on

Building Lattice — a deterministic knowledge graph that ties every line of AI-written code back to the feature, and the requirement, that asked for it. Ten parts in, dogfooding it on a real Laravel codebase with 1,900 files.

Read where it stands
Random read
Latest writing
01
Featured · AI Engineering

I Let an AI Name My Project. So Did Everyone Else..

I named my project Lattice in thirty seconds. Then I found three strangers who built the same kind of tool with Claude and landed on the same name. When everyone ideates with the same model, the model becomes a hidden convergence engine.

ainamingconvergencelattice
Jun 2026·5 min read
02
Building Lattice · Part 10 of 10

I Changed My Mind on Purpose, to See What Would Break

A hostile test: built a full Trello-style app under Lattice governance, planted a trap, then reversed a hard-delete decision mid-project. What held, what broke, and why 0.8.1 makes intent changes governed transactions.

aidogfoodinggovernancelattice
Jun 2026
2 min
03
Building Lattice · Part 9 of 10

"Done" Is Not One Thing

Four different claims compressed into one word: declared, wired, correctly-meant, demonstrated. The meaning ceiling is the honest core — and steering for agent fleets lands too.

aiverificationagent-fleetslattice
Jun 2026
2 min
04
Building Lattice · Part 8 of 10

If Constraints Are Free, Which Constraints?

The April inversion said constraints are free for machines. It never said which constraints. Vertical slices, line caps, 500-word specs, and five structural checks that are true or false, nothing in between.

aiconstraintsarchitecturelattice
Jun 2026
2 min
05
Building Lattice · Part 7 of 10

The Question the Whole Stack Was Built to Ask

Three layers exist: requirements, features, code. I can finally compute the traceability matrix. Every criterion gets a blunt status — and I almost shipped the strong word for the weak fact.

aitraceabilityverificationlattice
May 2026
2 min
06
Building Lattice · Part 6 of 10

The Layer I Was Avoiding: Why Does Any of This Exist?

Features and entry points describe the system. Neither answers why it should exist. A BRD layer with provenance, approval, and drift detection — and the question of whether badges change behavior.

airequirementsbrdlattice
May 2026
2 min
07
Building Lattice · Part 5 of 10

Nobody Believes a JSON File

I showed the graph to a friend. Polite silence. The same data as web pages? Questions about the system, not the tool. A Go binary now boots a local UI with live updates.

aicode-generationuilattice
May 2026
2 min
08
Building Lattice · Part 4 of 10

Features Say What Code Means. Nothing Says Who Can Reach It.

I found a hole in the graph. Routes, CLI commands, cron jobs — the actual doors into the system. Entry points are now first-class artifacts, and dead code finally has a definition.

aicode-generationentry-pointslattice
May 2026
2 min
09
Building Lattice · Part 3 of 10

Reality Check: 1,900 Files Will Not Annotate Themselves

The greenfield story was comfortable. Then I pointed the tool at a real Laravel codebase and built an import pipeline that drafts links itself — with provenance tracking.

aicode-generationprovenancelattice
May 2026
2 min
10
Building Lattice · Part 2 of 10

Constraints Are Free for Machines (I Think)

Every rule humans reject as too much friction costs a machine nothing. A Go CLI, tree-sitter, and a bet that deterministic knowledge graphs can replace the re-explaining ritual.

aicode-generationknowledge-graphlattice
Apr 2026
2 min
11
Building Lattice · Part 1 of 10

The Trap of Vibe Coding: Is There a Better Way to Manage AI-Generated Code?

We've automated the production of legacy code. A look at why AI-generated projects rot, what spec-driven frameworks get right (and wrong), and the three goals worth chasing.

aicode-generationspec-driven-developmentlattice
Apr 2026
2 min
12
Engineering Culture

Years of Experience Are Not Knowledge

My first job handed me two bugs and one lesson I'm still unpacking. Years of experience tell you how long someone worked, not whether they ever searched.

careerengineering-culturesearchlearning
Jul 2018
4 min

Get in touch

Building something, hiring, or scaling a team? Let's talk.

Engineering leadership, AI-first ways of working, or a short call about a problem you're chewing on. Grab a time that works, or just email me.

Email me