Dominio
Programming Fundamentals
Perfil de habilidad
Maybe/Option, Either/Result, IO monad, map/flatMap, functor laws, monad transformers
Roles
3
donde aparece esta habilidad
Niveles
5
ruta de crecimiento estructurada
Requisitos obligatorios
10
los otros 5 opcionales
Programming Fundamentals
Functional Programming
17/3/2026
Selecciona tu nivel actual y compara las expectativas.
La tabla muestra cómo crece la profundidad desde Junior hasta Principal.
| Rol | Obligatorio | Descripción |
|---|---|---|
| Backend Developer (Elixir) | Obligatorio | Understands the fundamentals of Monads & Functors at a basic level. Applies simple concepts in work tasks using Elixir. Follows recommendations from senior developers when solving problems. |
| Backend Developer (Scala) | Obligatorio | Understands the fundamentals of Monads & Functors at a basic level. Applies simple concepts in work tasks using Scala 3. Follows recommendations from senior developers when solving problems. |
| Compiler Engineer | Knows basic monads and functors concepts for compiler engineering and can apply them in common tasks. Uses standard tools and follows established team practices. Understands when and why this approach is used. |
| Rol | Obligatorio | Descripción |
|---|---|---|
| Backend Developer (Elixir) | Obligatorio | Independently applies monadic patterns (with/case chains, Result tuples) for composable error handling in Elixir pipelines. Understands trade-offs between Railway-oriented programming and exception-based flows. Explains functor mapping over Ecto changesets and option types in code reviews. |
| Backend Developer (Scala) | Obligatorio | Independently uses monads (Option, Either, Future, IO) for effect management in Scala applications. Understands trade-offs between Cats Effect and ZIO for referential transparency. Explains functor laws and for-comprehension desugaring to colleagues in code reviews. |
| Compiler Engineer | Confidently applies monads and functors for compiler engineering in non-standard tasks. Independently selects optimal approach and tools. Analyzes trade-offs and suggests improvements to existing solutions. |
| Rol | Obligatorio | Descripción |
|---|---|---|
| Backend Developer (Elixir) | Obligatorio | Designs composable middleware pipelines using monadic patterns in Elixir (Plug chains, Ecto.Multi transaction composition). Architects error-handling strategies combining with-clauses, tagged tuples, and supervision trees. Mentors developers on algebraic thinking and when to avoid monadic abstractions in favor of OTP patterns. |
| Backend Developer (Scala) | Obligatorio | Designs effect systems using monad transformers (EitherT, OptionT, ReaderT) and tagless final encoding for production Scala services. Architects domain layers with free monads or ZIO/Cats Effect for testable, composable business logic. Mentors developers on monad laws, stack-safe recursion with Eval, and pragmatic FP trade-offs. |
| Compiler Engineer | Expertly applies monads and functors for compiler engineering in designing complex systems. Optimizes existing solutions and prevents architectural mistakes. Conducts code reviews and trains colleagues on best practices. |
| Rol | Obligatorio | Descripción |
|---|---|---|
| Backend Developer (Elixir) | Obligatorio | Defines monad and functor usage standards at team/product level. Conducts architectural reviews. Establishes best practices and training materials for the team. |
| Backend Developer (Scala) | Obligatorio | Defines Monads and Functors usage standards at team/product level. Conducts architectural reviews. Creates best practices and training materials for the entire team. |
| Compiler Engineer | Establishes monads and functors standards for the compiler engineering team and makes architectural decisions. Defines technical roadmap considering this skill. Mentors senior engineers and influences practices of adjacent teams. |
| Rol | Obligatorio | Descripción |
|---|---|---|
| Backend Developer (Elixir) | Obligatorio | Defines monad and functor strategy at organizational level. Makes decisions on approaches and tools. Mentors lead developers and shapes technical vision. |
| Backend Developer (Scala) | Obligatorio | Defines Monads and Functors strategy at organizational level. Makes decisions on approaches and tools. Mentors lead developers and shapes technical vision. |
| Compiler Engineer | Shapes monads and functors strategy for compiler engineering at the organizational level. Defines best practices and influences technology choices beyond their own team. Is a recognized expert in this area. |