Writing: Engineering
Writing about software architecture, technical decisions, tooling, reliability, and building products.
Posts
Generative Interfaces
User intent can drive how software is composed and distributed, from declarative UI specs and MCP Apps in assistants to design systems machines can reason about at runtime.
Agentic Domain-Driven Design
Shared domain language helps teams and coding agents preserve business meaning, define clear boundaries, and avoid implementing the wrong assumptions.
Iteration Velocity
Previews, gradual rollouts, and small migrations shorten the path from an idea to evidence that it improves the product.
Context Engineering
An agent harness orchestrates memory, tools, skills, and retrieved information so models receive the right context at the right moment.
Product Engineering
Product engineering connects user needs, design, implementation, and production. Coding agents make end-to-end ownership more valuable.
AI Coding Factories
A reliable AI coding factory coordinates tasks, isolated execution, verification, and production feedback into a repeatable delivery process.
AI Agents are Infrastructure
Running agents in production means managing tools, state, permissions, and recovery—not just choosing a capable language model.
The Forward Deployed Engineer
Forward deployed engineers work with customers to turn AI into production systems, bridging product engineering, integrations, and adoption.
Engineering in the AI Era
As coding agents take over more implementation, an engineer's time moves to constraints, review, and deciding what should exist.
Why I still use Expo
OTA updates, EAS cloud builds, and shared TypeScript from production React Native work.
Web3 Composability
How shared token, liquidity, governance, and DeFi standards accelerate new products while introducing systemic risk.
Prompt Injection
How direct, indirect, and tool-response prompt injection hijack LLM behavior, and the layered defenses I use in AI applications that call tools.