Por qué Elixir es uno de los perfiles más difíciles de contratar
Elixir es el lenguaje de los sistemas que nunca deben caer: plataformas de pagos, telco, mensajería en tiempo real. Con solo ~400 devs activos en España, es uno de los perfiles más difíciles de contratar. Esta guía te explica cómo encontrarlos y evaluarlos correctamente.
La dificultad no es solo el tamaño del pool: es que Elixir se apoya en OTP (Open Telecom Platform), un conjunto de herramientas y patrones de diseño que viene de Erlang y es radicalmente diferente a cualquier framework orientado a objetos. Evaluar si un candidato realmente entiende GenServer, Supervisor trees y el modelo de actores de la BEAM VM requiere preguntas específicas que la mayoría de los procesos de selección no incluyen.
Los 3 retos de contratar Elixir developers en España
- Pool ultra-reducido: ~400 devs Elixir vs 15.000+ Python devs en España. Es un nicho dentro de un nicho: no solo el lenguaje es minoritario, sino que hay pocos bootcamps o cursos que lo enseñen como lenguaje principal. La mayoría de los buenos perfiles son autodidactas que llegaron desde Ruby o Haskell.
- Alta retención: Los buenos perfiles tienen empleos estables y no están buscando activamente. Elixir es un lenguaje que genera lealtad en sus desarrolladores: quienes lo aprenden rara vez quieren volver a lenguajes con modelos de concurrencia más primitivos. El 70% de los Elixir developers con experiencia en OTP no está en búsqueda activa.
- Evaluación compleja: Elixir requiere entender OTP/GenServer que es radicalmente diferente a OOP. Un proceso de selección genérico no puede evaluar si el candidato entiende supervision trees, fault tolerance y el principio "let it crash" que es la base del diseño de sistemas en BEAM.
Perfil técnico del Elixir developer
Un Elixir developer completo combina fluidez en el lenguaje con comprensión profunda de OTP. Estos son los criterios de evaluación por nivel:
- Must-have: Phoenix Framework para aplicaciones web/API, Ecto con changesets para gestión de datos y validaciones, OTP completo (GenServer, Supervisor, Agent), y pattern matching idiomático en todas las funciones. Sin estos pilares, el candidato no puede mantener ni extender un sistema Elixir en producción.
- Nice-to-have: Phoenix LiveView para interfaces reactivas sin JavaScript, Nerves para IoT embebido, integración con Kafka o RabbitMQ usando GenStage/Broadway, y testing avanzado con ExUnit incluyendo mocks con Mox.
- Red flags: No entiende la diferencia entre proceso Elixir y thread OS (son conceptos fundamentalmente distintos), usa GenServer donde bastaría un Agent o una simple función, no escribe tests con ExUnit desde el principio. También es señal de alarma no saber diseñar una supervision tree básica ante un requisito de fault tolerance.
Proceso de selección recomendado (4 etapas)
- Etapa 1 — Screening técnico (30 min): Preguntas sobre procesos BEAM, supervision trees y pattern matching. El objetivo es separar a quienes han trabajado con OTP real de quienes solo conocen Phoenix. Preguntas como "¿cuándo crearías un Supervisor dinámico?" o "¿qué diferencia hay entre un DynamicSupervisor y uno estático?" son buenos discriminadores.
- Etapa 2 — Kata técnica: Implementar un GenServer que mantenga estado (por ejemplo, un contador o una cache simple) más un Supervisor que lo monitorice y reinicie. Este ejercicio verifica comprensión práctica de OTP sin requerir horas de trabajo: un developer con experiencia real lo completa en 45-60min.
- Etapa 3 — Revisión de arquitectura: Dado un sistema real con requisitos de concurrencia (por ejemplo, N workers procesando jobs en paralelo con límite de rate), diseñar la supervision tree completa: qué procesos, qué estrategias de restart, cómo se comunican. Este step evalúa el razonamiento arquitectónico específico de BEAM que diferencia a un senior de un mid.
- Etapa 4 — Valores + contexto: Equipos pequeños, startup vs enterprise, ownership de código. Los Elixir developers suelen preferir entornos con mucha autonomía y problemas técnicos interesantes sobre salario máximo. Verificar alineación con la cultura del equipo es especialmente importante en este perfil.
Preguntas técnicas clave para la entrevista
- "Explica qué es una supervision tree y por qué es el patrón central de OTP.": Una supervision tree define la jerarquía de procesos y las estrategias de reinicio cuando alguno falla. Es el mecanismo que implementa el principio "let it crash": en lugar de manejar todos los errores defensivamente, se deja que el proceso falle y el Supervisor lo reinicia en estado limpio. Un candidato que no puede explicar estrategias :one_for_one, :one_for_all y :rest_for_one no ha diseñado sistemas OTP reales.
- "¿Cuándo usarías GenServer vs Agent vs Task en Elixir?": GenServer para procesos con lógica compleja, múltiples callbacks y que necesiten ser supervisados. Agent para estado simple compartido sin lógica de negocio. Task para operaciones concurrentes sin estado (disparar y olvidar o await). Un candidato que usa GenServer para todo indica sobreingeniería y falta de criterio sobre las primitivas correctas para cada problema.
- "¿Qué ventajas tiene Phoenix LiveView frente a un SPA React + API? ¿Cuándo lo descartarías?": LiveView elimina la duplicidad cliente/servidor, reduce la superficie de bugs de sincronización de estado y aprovecha el modelo de procesos BEAM para cada conexión. Se descartaría cuando el cliente necesita funcionar offline, la UI tiene animaciones complejas que requieren control milisegundo del DOM, o el equipo frontend ya tiene inversión significativa en React.
- "Tenemos 100.000 WebSocket connections activas. ¿Cómo estructurarías el sistema con Elixir/Phoenix?": Phoenix Channels con PubSub distribuido. Cada connection es un proceso BEAM liviano (~2KB memoria). Para estado compartido, una combinación de ETS para cache local y Phoenix.PubSub para broadcast. Para clusters multi-nodo, libcluster para auto-discovery. Esta pregunta revela comprensión del modelo actor vs el modelo thread-per-connection de otros lenguajes.
- "¿Cómo testearías un GenServer que tiene side effects (DB, HTTP)? Explain mocking en ExUnit.": Con Mox: definir behaviours (interfaces) para los módulos con side effects, crear mocks que implementan esos behaviours, e inyectar los mocks en test. El candidato debe conocer la diferencia entre mocks globales (no recomendados para tests concurrentes) y mocks por proceso con allow/2. No saber esto indica falta de experiencia en testing de sistemas OTP reales.
Salarios de mercado Elixir en España 2026
Elixir tiene una prima del 20-30% respecto a Ruby o Python para el mismo nivel de seniority, justificada por el pool ultra-reducido y la especificidad técnica del perfil:
- Junior Elixir Developer (0–2 años): 24.000 – 33.000 €
- Elixir Developer Mid (2–4 años): 33.000 – 46.000 €
- Senior Elixir Developer (4–7 años): 46.000 – 62.000 €
- Lead Elixir Developer (7–10 años): 62.000 – 82.000 €
- Principal / Staff Elixir Developer (10+ años): 82.000 – 108.000 €
Los perfiles con experiencia en sistemas real-time de alta disponibilidad (telco, fintech, gaming) y dominio avanzado de OTP distribuido pueden superar estos rangos en empresas de producto con tráfico significativo.
Errores frecuentes al contratar Elixir developers
- Error 1 — Buscar "Elixir + 5 años de experiencia": El lenguaje fue creado en 2011 y alcanzó adopción significativa hacia 2015-2017. Exigir 5 o más años de experiencia en producción filtra artificialmente a casi todos los buenos candidatos. 2-3 años de producción con OTP ya es un perfil senior sólido. Además, la madurez en Elixir se mide por profundidad en OTP, no por años.
- Error 2 — Comparar con Ruby/Python en salary: Elixir tiene prima del 20-30% por pool reducido. Ofrecer salario de Ruby developer a un Elixir developer senior es la forma más rápida de perder al candidato en el proceso. Los buenos perfiles Elixir conocen su valor de mercado precisamente porque el pool es tan pequeño que tienen datos muy precisos sobre lo que pagan otras empresas.
- Error 3 — No evaluar OTP: Muchos candidatos conocen Phoenix pero no dominan los primitivos OTP subyacentes. Un proceso de selección que solo evalúa Phoenix y Ecto contrata developers que pueden hacer CRUD, pero no diseñar sistemas fault-tolerant reales. Añadir al menos un ejercicio de GenServer + Supervisor al proceso es imprescindible.
Por qué TCS para encontrar Elixir developers en España
En The Consulting Solutions mantenemos el mayor directorio de Elixir developers en España con perfiles verificados. Al ser un nicho tan pequeño, conocemos personalmente a muchos de los perfiles activos en el mercado. Presentamos el primer candidato en 48h y reducimos el proceso a 2-4 semanas frente a las 6-10 semanas del mercado general.
Para ver el pool de salarios y perfiles Elixir disponibles en España o iniciar un proceso de selección, visita nuestra sección de hiring para empresas.