What problem does it solve? Applications that call databases, external APIs, and third-party services fail unpredictably, and unhandled failures cause cascading outages, leaked stack traces, and undebuggable production errors. This Skill provides concrete TypeScript patterns for building resilient services that degrade gracefully instead of crashing. ## Core Features & Use Cases - Retry with Exponential Backoff: Wrap transient external calls with configurable retry logic, jitter, and 4xx short-circuiting. - Circuit Breaker & Timeouts: Stop cascading failures with a CLOSED/OPEN/HALF_OPEN state machine and enforce explicit timeouts on every external call. - Typed Errors & Structured Logging: Use AppError subclasses, an Express error boundary, and pino-based logging with requestId for end-to-end traceability. - Use Case: When integrating a payment API, wrap the call with a 5-second timeout, retry only on 5xx/network errors, and return a typed ExternalServiceError with the requestId so support can trace the failure without reproducing it. ## Quick Start Apply the dev-error-handling patterns to add retry, timeout, and a typed error boundary to my Express payment endpoint.