# Salah Al-Nawah — Writing

> Notes on building software, scaling engineering teams, and where AI is taking all of it.

By day I'm VP of Engineering at Salla, 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.

- About: https://salahmyn.me/about/
- Arabic: https://salahmyn.me/ar/
- Machine-readable index: https://salahmyn.me/api/articles.json

## Latest writing

- [Cleared the Bar, or Lowered It? I Wrote the Theory Down](https://salahmyn.me/blog/cleared-the-bar-or-lowered-it/) — AI Engineering · Oct 2026 · 3 min
  Coding agents can turn every check green by weakening the requirement. Ten parts of building Lattice, now written up as a preprint: facts vs proxies, an assurance lattice, and why no checker can see a lowered bar.
- [I Let an AI Name My Project. So Did Everyone Else.](https://salahmyn.me/blog/ai-named-my-project/) — AI Engineering · Jun 2026 · 5 min
  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.
- [I Changed My Mind on Purpose, to See What Would Break](https://salahmyn.me/blog/changed-my-mind-on-purpose/) — AI Engineering · Jun 2026 · 2 min
  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.
- ["Done" Is Not One Thing](https://salahmyn.me/blog/done-is-not-one-thing/) — AI Engineering · Jun 2026 · 2 min
  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.
- [If Constraints Are Free, Which Constraints?](https://salahmyn.me/blog/if-constraints-are-free-which-constraints/) — AI Engineering · Jun 2026 · 2 min
  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.
- [The Question the Whole Stack Was Built to Ask](https://salahmyn.me/blog/question-the-stack-was-built-to-ask/) — AI Engineering · May 2026 · 2 min
  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.
- [The Layer I Was Avoiding: Why Does Any of This Exist?](https://salahmyn.me/blog/requirements-layer/) — AI Engineering · May 2026 · 2 min
  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.
- [Nobody Believes a JSON File](https://salahmyn.me/blog/nobody-believes-json/) — AI Engineering · May 2026 · 2 min
  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.
- [Features Say What Code Means. Nothing Says Who Can Reach It.](https://salahmyn.me/blog/entry-points/) — AI Engineering · May 2026 · 2 min
  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.
- [Reality Check: 1,900 Files Will Not Annotate Themselves](https://salahmyn.me/blog/reality-check-1900-files/) — AI Engineering · May 2026 · 2 min
  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.
- [Constraints Are Free for Machines (I Think)](https://salahmyn.me/blog/constraints-free-machines/) — AI Engineering · Apr 2026 · 2 min
  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.
- [The Trap of Vibe Coding: Is There a Better Way to Manage AI-Generated Code?](https://salahmyn.me/blog/trap-of-vibe-coding/) — AI Engineering · Apr 2026 · 2 min
  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.
- [Years of Experience Are Not Knowledge](https://salahmyn.me/blog/years-of-experience-are-not-knowledge/) — Engineering Culture · Jul 2018 · 4 min
  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.
