Tech
Effect: production-ready TypeScript applications
Errors, dependencies, concurrency and resilience in one composable model, adopted incrementally.
- Indicative duration
- 2 to 3 days
- Level
- Intermediate
- Delivery
- On-site · Remote · Hybrid
- Formats
- In-house
- Open session
- Intensive bootcamp
- Coaching / mentoring
Expected outcomes for your teams and business
What the training concretely changes, beyond the classroom:
-
Fewer bugs reaching production
Errors are part of the types: every failure case, timeouts and retries included, is visible and handled before the code ships.
-
Predictable delivery of complex features
Concurrency, orchestration and background work become composable building blocks rather than one-off code.
-
Fewer regressions
Dependencies are explicit and swappable, so business logic is tested without spinning up infrastructure.
-
Value without a rewrite
Effect is adopted incrementally in your existing codebase: the first module already pays off, no big-bang migration.
Learning objectives
By the end of the course, participants will be able to:
- Explain which problems Effect solves and when it is (or is not) worth adopting
- Write programs with typed errors and handle failures explicitly
- Structure dependencies with services and layers, and test them easily
- Orchestrate concurrent work with fibers, interruption and safe resource management
- Add resilience (retries, timeouts, schedules) and observability to a service
- Introduce Effect incrementally into an existing codebase
Audience
- TypeScript developers building backends, APIs or complex frontends
- Tech leads evaluating Effect for their team
Prerequisites
- Solid TypeScript fundamentals (generics, unions)
- Experience with Promises and async/await
Programme
-
Module 1 Why Effect
- The cross-cutting concerns of a real application
- The Effect type: success, error and requirements
- Evaluation vs execution
- Running effects at the edges
-
Module 2 Errors as first-class citizens
- Expected errors vs defects
- Typed error channels and catching by tag
- Error accumulation and validation
- From exceptions and Promises to Effect
-
Module 3 Dependencies, services and layers
- Declaring services with Context
- Building and composing layers
- Configuration and secrets
- Swapping implementations for tests
-
Module 4 Concurrency and resources
- Fibers and structured concurrency
- Interruption and cancellation
- Scope and safe resource management
- Bounded parallelism, queues and an overview of streams
-
Module 5 Resilience and observability
- Schedule: retries, backoff and repetition
- Timeouts and fallbacks
- Logging, metrics and tracing
- Schema for validating data at boundaries
-
Module 6 Adopting Effect in an existing codebase
- Incremental adoption strategies
- Interop with Promise-based libraries
- Project structure and conventions
- Common pitfalls and how to avoid them
Teaching approach
Around 70% hands-on. Each module alternates short concept sessions, live coding and exercises of increasing difficulty, starting from realistic code rather than toy examples. A running example service grows module after module, so participants see how errors, dependencies, concurrency and resilience fit together. Participants leave with the exercises, their solutions and the slides.
Tailored to your context
Before the session, a short call helps me understand your stack, your codebase and your team’s level. Exercises can then be built on your own code, and the balance between modules adjusted to what matters most for you: adopting Effect in an existing product is a different journey from starting a new one.
Let's talk about your needs
A programme to adapt, a team to train, a question about a format? Write to me and let’s discuss.
Get in touchantoinecoulon.consulting@gmail.com