Desarrollador·a Frontend

EspañaIntermedio

Preguntas de entrevista estructuradas para Desarrollador·a Frontend, con lo que revela una buena respuesta en cada una.

  1. ConductualDecisión técnica

    Describa el componente o flujo más complejo que diseñó y construyó en su último puesto. ¿Por qué era complejo y cómo lo abordó?

    Lo que revela una buena respuesta

    Capacidad de estructurar una decisión bajo incertidumbre: identificación de restricciones (rendimiento, accesibilidad, mantenibilidad), exploración de alternativas, validación con personas usuarias o con datos, documentación posterior. Bonus: la persona candidata menciona haber cambiado de opinión durante el proceso o haber refactorizado tras el primer release. Quienes describen un componente trivial con perspectiva grandilocuente revelan que nunca llegaron a enfrentarse a un caso realmente complejo.

  2. ConductualDepuración e investigación

    Cuénteme un bug de frontend en producción que resolvió. ¿Cuál era el síntoma, cómo lo diagnosticó y cuánto tiempo le llevó?

    Lo que revela una buena respuesta

    Método de depuración estructurado: reproducción, DevTools (Network, Performance, React Profiler), bisección por commits o feature flags, hipótesis validadas con experimentos. Honestidad sobre la duración (un bug real de frontend rara vez se cierra en menos de 30 minutos cuando depende del estado, del cache del navegador o de una race condition). Bonus: la persona cita la causa raíz y el correctivo sistémico, no solo el hotfix.

  3. ConductualAprendizaje y humildad

    Describa un momento en el que tuvo que refactorizar o reescribir un componente que usted mismo·a había escrito unos meses antes. ¿Qué había pasado entre medias?

    Lo que revela una buena respuesta

    Humildad técnica y capacidad de aprender. Bonus: la persona identifica lo que habría hecho diferente desde el principio (separación de presentación y lógica, mejor tipado, abstracción más temprana o más tardía). Quienes afirman no haber tenido nunca que refactorizar su propio código mienten o no han mantenido código en producción durante el tiempo suficiente.

Manual de evaluación

El puesto de Desarrollador·a Frontend se evalúa en cinco etapas. La prueba técnica (etapa 3) y el ejercicio de revisión de código (etapa 4) son las más predictivas: alguien puede hablar de React o de accesibilidad durante una hora sin revelar si realmente sabe entregar un componente sólido en producción. Ponga a la persona a trabajar sobre código real.

  1. Etapa 1: Lectura del CV y del portfolio público

    Busque coherencia entre lo que dice el CV y lo que muestra el portfolio público (GitHub, sitio personal, charlas, contribuciones a open source). Señales positivas: proyectos personales con commits regulares, componentes documentados, atención a la accesibilidad y al rendimiento. Señales negativas: GitHub vacío o solo con forks sin actividad, CV que enumera frameworks sin profundidad real, ausencia total de tests. La titulación pesa menos que los últimos 3-5 años de trabajo real en producción.

  2. Etapa 2: Phone screen (30 min)

    Solo tres preguntas: (1) describa el componente o flujo del que se sienta más orgulloso·a y cuál fue su aportación concreta, (2) qué decisión técnica reciente sigue cuestionando hoy (humildad y retrospección), (3) por qué un cambio justo ahora. Salida: go o no-go en 5 minutos de debrief, no más. Evite las preguntas técnicas tipo trampa en esta fase.

  3. Etapa 3: Prueba técnica acotada (2-3 horas)

    Brief realista: implementar un componente o una pantalla pequeña con datos asíncronos, estados de carga y error, accesibilidad básica (foco, contraste, jerarquía semántica) y un test mínimo. Acote el tiempo a 2-3 horas y comuníquelo de forma explícita; acepte soluciones incompletas pero bien argumentadas. Evite los ejercicios tipo concurso (reproduzca este Figma píxel a píxel sin contexto) o tipo LeetCode (algoritmos sin relación con el día a día).

  4. Etapa 4: Revisión de código y diseño de interacción (60-90 min)

    Sesión en directo en dos partes: 30-40 min de revisión del código entregado en la etapa 3 (¿por qué eligió este enfoque?, ¿cómo testearía este edge case?, ¿cómo escalaría este componente a 20 variantes?), seguidos de 20-50 min de discusión sobre un caso de diseño de interacción (cómo abordaría una lista virtualizada con 10 mil ítems, un formulario complejo con validación asíncrona, una accesibilidad en un menú anidado). Evalúe la capacidad de razonar en voz alta, de pedir aclaraciones y de iterar.

  5. Etapa 5: Referencias (verificación estructurada)

    Llame a dos referencias: un·a antiguo·a tech lead o engineering manager directo y un·a antiguo·a compañero·a de equipo (idealmente frontend o diseño). Plantee a ambas las mismas cuatro preguntas: ¿En qué destaca más?, ¿Para qué contrataría a una persona complementaria?, ¿La o lo volvería a contratar mañana y por qué?, ¿Un ejemplo de decisión técnica difícil tomada en autonomía? La cuarta pregunta es la que revela el verdadero indicio de autonomía y de criterio.

Cómo reconocer una gran contratación

CompetenciaPor debajoEn el nivelPor encima
Solidez técnica frontendTropieza con los fundamentos (DOM, ciclo de vida de los componentes, gestión del estado, asincronía). Busca soluciones a base de prueba y error sin modelo mental claro. Difícil de subir a un framework nuevo.Domina la stack actual en autonomía. Sabe aprender un framework nuevo en 2-4 semanas. Comprende los fundamentos del DOM, del estado y del rendimiento lo suficiente para depurar en profundidad cuando hace falta.Referente técnico del equipo en frontend y capaz de saltar a una nueva stack en pocas semanas. Anticipa trampas clásicas (re-renders innecesarios, memory leaks, race conditions en hooks). Construye abstracciones útiles, no prematuras.
Accesibilidad y calidad de interacciónIgnora la accesibilidad o la trata como tarea final. No conoce los fundamentos (contraste, foco, jerarquía semántica, ARIA). Estados de error, vacío y carga descuidados. Interacciones rotas en teclado.Aplica los fundamentos WCAG AA en cada componente nuevo: contraste, foco visible, jerarquía semántica correcta, gestión de errores anunciada. Trata estados de error, vacío y carga de forma explícita. Verifica navegación por teclado.Referente de accesibilidad del equipo: integra checklist accesible en code review, automatiza con axe en CI, anticipa edge cases (lector de pantalla, zoom 200 por ciento, reducción de movimiento). Forma al equipo en buenas prácticas.
Rendimiento web y operaciónSin instrumentación de rendimiento. Bundles enormes, sin code splitting, sin lazy loading. Optimiza por intuición sin medir. No conoce los Web Vitals.Mide antes de optimizar: Lighthouse, Web Vitals, bundle analyzer. Aplica code splitting, lazy loading y optimización de imágenes en los puntos críticos. Conoce el impacto de los terceros (analytics, A/B tests) en el rendimiento.Optimización continua: budget de rendimiento documentado, alertas sobre regresión de Web Vitals, profiling regular de runtime. Sabe arbitrar entre experiencia y simplicidad técnica. Forma al equipo en cultura de rendimiento.
Calidad del código y disciplina de testsSin estrategia de testing clara; añade tests para subir cobertura. Componentes de 500 líneas, copy-paste, lógica mezclada con presentación. Tipado laxo o ausente. Reviews superficiales.Pirámide de tests adecuada (unitarios, componente, e2e en flujos críticos). Código legible, hooks bien separados, tipado razonable. Reviews estructuradas con feedback accionable. Refactoriza al paso cuando es pertinente.Referente de calidad del equipo: convenciones documentadas, automatización en CI (linters, type checkers, tests, axe, Lighthouse). Reviews pedagógicas que hacen progresar a perfiles junior. Sabe decir no a código que pasa los tests pero envejecerá mal.
Comunicación y juego en equipoExplica mal su trabajo a perfiles no técnicos. Postura defensiva en reviews. Trabaja en silo, comparte poco contexto. Postura de oposición sistemática frente a producto o diseño.Sabe explicar su trabajo a una persona PM o de diseño en lenguaje claro. Recibe la review de forma constructiva. Comparte contexto en revisiones de equipo y 1:1. Negocia plazos de forma transparente.Puente entre frontend, producto y diseño. Modera debriefs técnicos, divulga arbitrajes (rendimiento, accesibilidad, deuda), negocia plazos de forma transparente. Referente del equipo en comunicación transversal.

Plan de 30/60/90 días

Día 30

  • Setup completo del entorno local y despliegue de una PR (aunque trivial) validada en producción
  • Lectura y comprensión del código de los 3 componentes o flujos más críticos del producto
  • Primer 1:1 documentado con la persona tech lead sobre convenciones, deuda identificada y prioridades
  • Primera PR sustantiva (corrección de bug o componente pequeño) revisada y mergeada

Día 60

  • Entrega de un componente o flujo completo de principio a fin (diseño aterrizado, accesibilidad, tests, despliegue) en autonomía
  • Primera review de PR de un·a compañero·a con feedback estructurado, no solo clic en aprobar
  • Primer aporte al design system o a la documentación de patrones del equipo
  • Primera contribución de rendimiento o accesibilidad medible (mejora de Web Vital, corrección de issue WCAG en flujo crítico)

Día 90

  • Entrega regular (1-2 PRs por semana) con calidad validada por el equipo en review
  • Primera decisión técnica en autonomía sobre un tema ambiguo (refactor, elección de librería, diseño de componente reusable)
  • Mentoría informal de un·a junior o nueva incorporación (pair programming, reviews pedagógicas)
  • Balance formal con la persona tech lead: rampa validada, plan de progresión sobre 1-2 ejes prioritarios
Actualizado
Cubra este puesto con JoinSourcing, filtrado y entrevistas en un solo lugar.
Contratar

Hablar con Join