Devoteam es una consultora europea líder enfocada en estrategia digital, plataformas
tecnológicas, ciberseguridad y transformación empresarial a través de la tecnología.
Centrada en 6 áreas de especialización, abordamos los desafíos estratégicos de nuestros
clientes: Digital Business & Products, Data-driven Intelligence, Distributed Cloud, Business
Automation, Ciberseguridad y la Sostenibilidad conseguida por la Digitalización.
La Tecnología está en nuestro ADN y creemos en ella como una palanca capaz de impulsar
el cambio para mejorar, manteniendo un equilibrio que nos permite ofrecer a nuestros
clientes herramientas tecnológicas de primer nivel pero siempre con la cercanía y
profesionalidad de un equipo que actúa como guía durante el camino.
Nuestros 25 años de experiencia nos convierten en una consultora innovadora,
consolidada y madura que permite el desarrollo de nuestras 8.500 personas, certificando
continuamente a nuestros consultores en las últimas tecnologías y contando con expertos
en: Cloud, BI, Data Analytics, Excelencia en Procesos de Negocio, Gestión de la Relación
con clientes, Ciberseguridad, Marketing Digital, Machine Learning, Ingeniería y desarrollo
del Software.
Devoteam ha sido premiado como Partner del año 2021 de los 5 líderes de la nube: AWS,
Google Cloud, Microsoft, Salesforce y ServiceNow.
#CreativeTechForBetterChange
Descripción del empleoBuscamos un arquitecto de software con una sólida base técnica y experiencia demostrable en la construcción de sistemas distribuidos a gran escala. El candidato ideal debe poseer un profundo entendimiento de la arquitectura de microservicios y ser capaz de diseñar soluciones robustas y escalables, fundamentando sus decisiones con un enfoque pragmático y orientado a resultados.
Se trata de una posición estable en modalidad híbrida (2 - 3 días en oficina) en la zona de Chamartín.
RequisitosArquitectura y Plataformas:
Kubernetes (K8s) [Obligatorio]: Experiencia avanzada en el diseño, implementación y gestión de arquitecturas en clústeres de Kubernetes. Es crucial el conocimiento de las diferencias entre entornos de nube públicos (AWS, Azure, GCP) y privados/on-premise. Debe ser capaz de gestionar servicios tanto internos (ClusterIP) como externos (NodePort, LoadBalancer, Ingress).
Gestión de Tráfico y Conectividad [Valorable]: Experiencia práctica con herramientas de control de tráfico y seguridad como Ingress y Service Mesh. Se valora especialmente el conocimiento de Istio o alternativas similares, comprendiendo la gestión de la comunicación tanto a nivel de APIs públicas como de la comunicación segura entre pods (comunicación intra-cluster communication).
Sistemas Distribuidos [Obligatorio]: Sólida experiencia en el diseño y la implementación de sistemas distribuidos. Es fundamental el entendimiento de patrones de diseño como el SAGA, así como los desafíos inherentes a la consistencia de datos, la tolerancia a fallos y la comunicación asíncrona.
Orquestación de Procesos (BPM) [Valorable]: Experiencia práctica con motores de orquestación de procesos de negocio. Se requiere experiencia específica con jBPM o el más moderno Kogito. Se valorará el conocimiento de otros enfoques como la Arquitectura Orientada a Servicios (SOA).
Lenguaje y Frameworks:
Java [Obligatorio]: Dominio del lenguaje Java, con experiencia demostrada en versiones Java 11 y 17 o superiores.
Frameworks de Microservicios [Obligatorio]: Profundo conocimiento de al menos uno de los frameworks modernos para la creación de microservicios. Se requiere experiencia con Spring Boot o Quarkus, comprendiendo las diferencias de rendimiento y los casos de uso óptimos para cada uno.
Programación [Obligatorio]: Entendimiento claro de la diferencia y las implicaciones de la programación imperativa frente a la programación reactiva en el contexto de sistemas distribuidos.
Otros Lenguajes [Valorable]: Se valorará experiencia en otros lenguajes y frameworks, especialmente python con FastAPI y NodeJs.
DevOps y Observabilidad:
Contenerización [Obligatorio]: Sólidos conocimientos de Docker para la creación y gestión de imágenes de contenedores.
Infraestructura como Código (IaC) [Valorable]: Conocimientos sólidos de herramientas de IaC como Terraform. El arquitecto debe ser capaz de diseñar la estrategia de despliegue y guiar a los equipos de DevOps.
Ciclo de Vida del Software (CI/CD) [Valorable]: Profundo conocimiento de los principios de CI/CD y DevSecOps. El rol implica la coordinación de los equipos de desarrollo y operaciones para definir y custodiar los procesos y pipelines, garantizando la seguridad, calidad e integridad del software.
Observabilidad y Monitorización [Valorable]: Experiencia en la implementación de soluciones de observabilidad para sistemas distribuidos. Se requiere conocimiento de herramientas de monitorización (p. ej., Prometheus, Grafana), de logging centralizado (p. ej., ELK Stack, Loki) y de rastreo distribuido (p. ej., Jaeger, OpenTelemetry).
Comunicación y APIs:
API RESTful [Obligatorio]: Experiencia fundamental en el diseño e implementación de API RESTful.
Otros Protocolos [Valorable]: Se valora positivamente la experiencia con otros protocolos de comunicación, como SOAP.
Responsabilidades Clave
El arquitecto será responsable de:
Diseño de Alto Nivel y Fundamentación: Definir la arquitectura de alto nivel para los sistemas distribuidos del cliente, diseñando la interacción entre microservicios, procesos de negocio e infraestructura en la nube. Debe ser capaz de documentar y fundamentar sus decisiones, definiendo los drivers de arquitectura y las fitness functions para validar que la solución cumple con los objetivos de negocio y técnicos.
Liderazgo Técnico y Adaptabilidad: Liderar y guiar a los equipos de desarrollo, asegurando la aplicación de las mejores prácticas y estándares de calidad. Deberá ser capaz de iterar y adaptar la arquitectura de manera continua a medida que evolucionan las necesidades del cliente.
Supervisión y Custodia: Custodiar la visión arquitectónica y revisar los entregables para asegurar que se alinean con los principios de la arquitectura, como la separación de responsabilidades y el bajo acoplamiento.
Estrategia de DevOps: Diseñar la estrategia de despliegue e infraestructura como código y supervisar su implementación.
Estrategia de Observabilidad: Definir los estándares de monitorización, logging y rastreo para la solución, asegurando una visibilidad completa del estado del sistema.