Desarrollador Senior .NET
Responsabilidades Técnicas
Desarrollo Frontend
- 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.
- Seguridad: diseño de esquemas de autenticación/autorización (JWT, OAuth2, OpenID Connect), gestión de CORS y validación de datos (FluentValidation) a nivel de arquitectura, no solo de implementación.
- 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
- GitHub, GitLab (incluyendo definición de branching strategy)
- Postman
- Visual Studio Code / Visual Studio
- Docker y orquestación (Kubernetes deseable)
- SQL Server Management Studio, DBeaver
- APIs REST y GraphQL
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.
Deseables
- Experiencia con serverless architectures.
- Experiencia con sistemas de mensajería (Kafka/RabbitMQ/Redis) en producción. • Titulación universitaria en Sistemas o campos relacionados.
- Certificaciones cloud (Huawei/AWS) deseables.
Cómo postular
Enviar CV (y opcionalmente, repositorios o ejemplos de trabajo) a:
?
[email protected]
📌 Programador full stack (Córdoba)
🏢 ENCODE
📍 Córdoba