Architecture Design
System design and patterns
Serverless Architecture Framework
Design serverless architectures that are economical, reliable, and observable — with fit-for-purpose decision criteria (when Lambda/Functions beats containers), cold-start mitigation, concurrency/cost modeling, and event-driven patterns that avoid the traps where serverless becomes more expensive than VMs.
Architecture Review Framework
Review an existing architecture — identifying structural risks, scalability ceilings, security gaps, and operational complexity that will create problems before they do, with a prioritized remediation plan that addresses root causes rather than symptoms.
Observability Architecture Framework
Design an observability stack — with structured logging, distributed tracing, and metrics instrumentation that answer "what is the system doing right now and why" without requiring a production deployment to investigate an incident.
CI/CD Pipeline Design Framework
Design a CI/CD pipeline — with quality gates that prevent broken code from reaching production, deployment strategies that minimize downtime, and rollback mechanisms that recover from failed deployments in minutes rather than hours.
Scalability Architecture Framework
Design a scalable architecture — identifying the bottlenecks that will limit growth before they occur, selecting the right scaling strategy per component, and implementing the patterns that allow the system to handle 10× traffic without architectural changes.
Security Architecture Framework
Design a security architecture — with threat modeling that identifies attack surfaces before code is written, defense-in-depth layers that ensure no single control failure compromises the system, and security controls embedded in the design rather than bolted on afterward.
Event-Driven Architecture Framework
Design an event-driven architecture — defining the event schema standards, selecting the right message broker for the delivery guarantees needed, and implementing event consumers that are idempotent and handle out-of-order delivery correctly.
Caching Strategy Framework
Design a multi-layer caching strategy — selecting the right cache layer for each data type, implementing cache invalidation that keeps data consistent, and avoiding the cache stampede and stale data problems that make caching unreliable.
Microservices Architecture Design Framework
Design a microservices architecture — defining service boundaries using domain-driven design, designing inter-service communication for both synchronous and async patterns, and establishing the operational infrastructure required before microservices can be operated reliably.
Database Schema Design Framework
Design a database schema — applying normalization principles to eliminate redundancy, designing indexes that match query patterns, and making explicit tradeoffs between normalization and read performance where the query patterns justify denormalization.
System Architecture Design Framework
Design a system architecture — selecting the right architectural pattern for the scale and team constraints, documenting decisions with their rationale and tradeoffs, and producing the architecture diagram and component specifications a development team can build from.