Frameworks: dominio sólido de Angular con TypeScript; capacidad de evaluar y definir cuándo usar React según el proyecto.
Gestión de Estado: criterio para elegir y diseñar la estrategia de estado a nivel de aplicación (Redux, Context API, NgRx, servicios inyectados), no solo usarla.
Consumo de Servicios: diseño de la capa de comunicación con el backend (interceptores, manejo centralizado de errores, refresh de tokens, estrategias de caching en cliente).
Maquetado y Estilo: definición de sistemas de componentes reutilizables y librerías internas (Tailwind CSS o Bootstrap como base), con criterio de diseño escalable para múltiples equipos.
Desarrollo Backend
Arquitectura de APIs: dominio experto de ASP.NET Core Web API, middleware custom, filtros, versionado de APIs y diseño de contratos (REST/GraphQL).
Patrones de Arquitectura: dominio de Clean Architecture, DDD (Domain-Driven Design) y CQRS; capacidad de decidir qué patrón aplicar según el problema, no solo implementarlo.
Manejo de Datos Pro: dominio avanzado de Entity Framework Core (Migrations, Shadow Properties, optimización de consultas, resolución de N+1) y criterio para saber cuándo bajar a SQL puro o Dapper por performance.
Asincronismo y Concurrencia: uso avanzado de async/await, manejo de background jobs (Hangfire, Quartz), y resolución de problemas de concurrencia y bloqueos en sistemas de alta carga.
Arquitectura y Sistemas Distribuidos
Liderar el diseño de arquitecturas escalables, mantenibles y desacopladas para múltiples equipos de desarrollo.
Diseñar e implementar arquitecturas de microservicios: definición de bounded contexts, comunicación entre servicios (síncrona y asíncrona), patrones de resiliencia (circuit breaker, retry, bulkhead).
Sistemas de mensajería y eventos: diseño de flujos con Kafka, RabbitMQ o Redis (pub/sub, colas, event sourcing cuando aplique).
Definir el stack tecnológico del equipo y los estándares de arquitectura, documentando decisiones (ADRs) y trade-offs.
Realizar code reviews con foco en arquitectura y deuda técnica, no solo en estilo de código.
DevOps y Calidad
Diseñar y mantener pipelines de CI/CD, incluyendo estrategias de despliegue (blue-green, canary).
Acordar la estrategia de testing del equipo (unitarios, integración, end-to-end) y los criterios de cobertura.
Diseñar la infraestructura de despliegue en entornos cloud (AWS/Azure/GCP), con foco en escalabilidad y costos.
Implementar observabilidad: logging estructurado, métricas, tracing distribuido, alertas proactivas ante degradación de performance.
Herramientas de desarrollo y Colaboración
Docker y orquestación (Kubernetes deseable)
Competencias Técnicas — Nivel Esperado
Capacidad para liderar el diseño técnico de features y proyectos completos, no solo ejecutarlos.
Experiencia resolviendo problemas de performance y escalabilidad en sistemas productivos de alto tráfico.
Dominio profundo de patrones de arquitectura, con criterio para elegir el patrón correcto según el contexto del negocio.
Habilidad para diseñar esquemas de base de datos eficientes a nivel de sistema (no solo de una feature), considerando particionamiento y escalabilidad.
Capacidad de detectar y resolver deuda técnica de forma proactiva.
Competencias Blandas Requeridas
Liderazgo Técnico y Trabajo en Equipo
Liderazgo Técnico: guiar decisiones de arquitectura y stack, y ser referente técnico para el equipo.
Comunicación Técnica: explicar trade-offs y decisiones técnicas complejas tanto a perfiles técnicos como no técnicos (negocio, PM).
Mentoría: formar y acompañar a desarrolladores semi senior y junior de forma estructurada (pairing, revisiones de diseño).
Colaboración: articular con múltiples equipos y stakeholders en proyectos cross-funcionales.
Adaptabilidad: manejar ambigüedad y cambios de prioridades en proyectos de mayor escala.
Mentalidad Ágil y Ownership
Orientación a Resultados: balancear entrega de valor continuo con sostenibilidad técnica a mediano/largo plazo.
Mejora Continua: impulsar mejoras de procesos y arquitectura a nivel de equipo, no solo de código propio.
Propiedad: responsabilidad end-to-end sobre sistemas completos, incluyendo su operación en producción.
Curiosidad: evaluar y proponer adopción de nuevas tecnologías con criterio de negocio.
Requisitos de Experiencia
Formación y Experiencia
9+ años de experiencia en desarrollo full stack, con al menos 3 años en roles de mayor responsabilidad técnica.
Experiencia comprobable liderando el diseño de arquitecturas para proyectos de alta complejidad.
Experiencia mentoreando o liderando técnicamente a otros desarrolladores.
Portfolio o ejemplos de código/arquitectura para revisar.
Experiencia con serverless architectures.
Experiencia con sistemas de mensajería (Kafka/RabbitMQ/Redis) en producción.
Titulación universitaria en Sistemas o campos relacionados.