API Review Checklist
Comprehensive checklist for reviewing API design covering REST/GraphQL/gRPC compliance, versioning strategies, security headers, rate limiting, documentation, and error handling.
Comprehensive checklist for reviewing API design covering REST/GraphQL/gRPC compliance, versioning strategies, security headers, rate limiting, documentation, and error handling.
Reference guide for common architecture patterns including bounded contexts, sagas, outbox pattern, circuit breakers, bulkheads, sidecars, and service mesh.
Comprehensive architecture review guide covering quality attributes assessment, risk identification, operational readiness, technology fitness evaluation, and team capability assessment.
How to tell architecture decisions from design and implementation, with cues, examples, and a flow.
Reusable components, design tokens, and living documentation
Favor object composition over inheritance to achieve flexibility, reduce fragility, and improve code reuse.
Identify volatile aspects of your system and hide them behind stable interfaces to reduce coupling and change impact.
Build systems where components relate strongly to their purpose while remaining loosely connected to other components.
Prefer immutable data structures to reduce bugs, improve thread safety, and simplify reasoning about code.
Simplicity first: write code that humans understand before optimizing for machines.
Subtypes must be substitutable for their supertypes without breaking client code. Preserve behavioral contracts.
Design systems where behavior matches user expectations, minimizing surprise and confusion.
Master systematic problem decomposition, pattern recognition, constraint analysis, and data structure selection for algorithmic problems.
Distributed algorithms, parallel processing, MapReduce patterns, stream processing, and caching strategies
Design systems where different areas address different aspects of functionality, improving modularity and maintainability.
STRIDE-based threat modeling framework for identifying security vulnerabilities. Includes asset identification, attack surface analysis, threat enumeration, risk scoring, and mitigation planning.
Avoid speculative generality: implement only features needed today, not imagined future requirements.