Why producing working code faster with AI raises the stakes on architectural quality, and why passing tests is not the same as having sound boundaries.
All articles
Technical depth, architectural thinking, and hard-won lessons from building systems. Published as local MDX files.
Why tenant scope cannot be treated as a field that flows through the system, and what it means to establish it as a trust boundary instead.
Why OpenSpec belongs in a different category than knowledge tools—and why planning before execution is the actual constraint it addresses.
Why building a real multi-tenant SaaS stops being a feature problem and becomes a problem of trust boundaries, guarantees, and responsibility placement.
Why the biggest gain in AI-assisted development comes from durable local knowledge and disciplined workflow structure, not from keeping every external tool always active.
Why request context is not backend plumbing, but the place where identity, tenant scope, and permissions become enforceable.
Why I kept this blog's publishing system repo-native, with explicit state and handoff boundaries, instead of reaching for a CMS too early.
Why AI-assisted development breaks down when useful reasoning disappears between sessions, and why durable project context matters more than clever prompts.
Why planning is less about agent autonomy and more about making AI-assisted work inspectable before it becomes expensive.
Why server-first Next.js development is less about state management libraries and more about putting authority in the right place.
Why architectural patterns stop feeling theoretical when AI accelerates implementation faster than review.
Why AI lowers MVP implementation cost without lowering the difficulty of scope discipline, sequencing, and product judgment.
Why AI lowers the cost of producing the first version faster than it lowers the cost of owning the complexity, risk, and maintenance that follow.
Why AI does not break product coherence by itself, but makes local UI deviation cheap enough that drift appears faster than many teams can review it.
Why tools for AI agents should be designed as working surfaces, not just exposed as function calls.