Blog / Architecture
Posts on Architecture
Architecting AI Applications for Production
A threat-model-first walkthrough of shipping LLM-backed features — prompt injection defenses, multi-provider failover, structured output, cost control, and the concurrency traps that melt AI services in production.
Zero Trust Security for Microservices
Service-mesh zero trust, in practice: SPIFFE identities, mTLS by default, Istio and Linkerd policy at the sidecar, network policies underneath, and the places where you still need app-level authorization.
Real-Time Data Pipelines with TypeScript and Kafka
How I build type-safe, event-driven data pipelines using TypeScript and KafkaJS -- from schema validation to dead letter queues to exactly-once processing.
Resilient Microservices in Go
Circuit breakers, bulkheads, retries, timeouts, and degradation — the fault-tolerance patterns that keep distributed Go systems alive when dependencies fail.
Migrating Monoliths to Microservices with Go
An opinionated migration framework for strangling a Go monolith — threat model, dependency analysis, strangler-fig routing, database-per-service, and when not to migrate at all.
TypeScript at Scale
Managing large TypeScript codebases without drowning in complexity — modular architecture, state management, and type system patterns that actually work.
Enterprise Microservices in Go
The architecture patterns I rely on for building microservices that actually survive production — DDD boundaries, outbox-based events, gRPC, and the currency mistake almost everyone ships.