Writing: Engineering
Writing about software architecture, technical decisions, tooling, reliability, and building products.
Posts
AI Model Context Protocol (MCP)
What the Model Context Protocol standardizes about connecting models to tools and data, and how I structure MCP-style tools, composition, and memory in TypeScript.
RAG with TypeScript
How retrieval-augmented generation works, and how to implement it with TypeScript SDKs, embeddings, and vector stores.
Scaling and Securing WebSockets
How session affinity, TLS, authentication, and Redis pub/sub keep WebSocket backends reliable across multiple nodes.
The Skillset of a Product Engineer
Why product engineers take ownership of user needs, interfaces, and systems instead of working within one technical layer.
Engineering Principles
The principles I use to balance software quality, reliability, and delivery speed across products and technical stacks.
When React Compiler Replaces Manual Memoization
Why React Compiler reduces the need for useMemo, useCallback, and memo—and when those APIs still matter.
Fractal Components in React
How I organize React applications into self-similar modules and compound components to keep features manageable as they grow.
Modern Next.js Web3 Architecture
How I structure Next.js Web3 applications using URL state, colocated features, TanStack Query, wagmi, and viem.
Touch Grass, Activate Clarity
Why time away from the screen is part of sustainable engineering, and how I make room for clearer thinking and focus.
Introducing BasilicEVM
A look at my EVM starter for wallet connections, contract types, and chain interactions using Foundry, viem, and wagmi.
Architecture Decision Records
How I use ADRs to capture technical decisions, tradeoffs, and context so teams can revisit them with confidence.
Async Patterns in React
How I keep asynchronous logic in TypeScript services and connect it to React with TanStack Query and reusable hooks.