Descripción del puesto:
Estamos buscando un Desarrollador Senior Java con sólida experiencia en el desarrollo de aplicaciones Single Page Applications (SPA) utilizando el framework Vaadin. Este profesional será responsable de diseñar e implementar soluciones escalables, con interfaces de usuario eficientes, y gestionar grandes volúmenes de datos a través de arquitecturas distribuidas. El candidato debe tener conocimientos avanzados en Java y tecnologías relacionadas, así como experiencia en la integración de API y el desarrollo de microservicios.
Modalidad: 100% remoto
Sueldo: $40,000 MXN Libres
Lenguaje de Programación:
- Dominio avanzado de Java (Java 8 o superior), con al menos 5 años de experiencia en desarrollo backend y frontend.
Familiaridad con otros lenguajes compatibles con la JVM como Scala o Groovy es un plus.
Experiencia con Spring Framework (Spring Boot, Spring Security, Spring Data).
Framework Vaadin:
- Experiencia demostrable con Vaadin para el desarrollo de Single Page Applications (SPA).
Habilidad para desarrollar interfaces gráficas modernas y eficientes en Java o en cualquier otro lenguaje soportado por la JVM (Scala, Groovy). - Conocimientos en el uso de componentes Vaadin, como Grid, Forms, Layouts, y patrones de diseño de UI.
Familiaridad con Vaadin Flow para el desarrollo de aplicaciones web lado servidor y la gestión eficiente de la interfaz gráfica. - Uso de Vaadin Router para el manejo de la navegación en aplicaciones SPA.
API y Microservicios:
- Diseño, desarrollo y mantenimiento de APIs RESTful.
- Conocimientos en GraphQL (opcional, pero valorado).
- Experiencia con arquitecturas basadas en microservicios y gestión de la comunicación entre servicios.
Manejo de grandes volúmenes de datos:
- Experiencia con tecnologías de procesamiento de datos masivos como Apache Kafka, Apache Spark o Hadoop.
Conocimientos en bases de datos SQL (PostgreSQL, MySQL) y NoSQL (MongoDB, Cassandra), con énfasis en la optimización para grandes volúmenes de datos. - Capacidad para diseñar y optimizar sistemas de almacenamiento y consultas eficientes para manejar datos en tiempo real.
Arquitectura y Escalabilidad:
- Diseño de arquitecturas distribuidas y escalables para manejar grandes volúmenes de tráfico y procesamiento de datos.
- Implementación de patrones de alta disponibilidad y tolerancia a fallos en sistemas críticos.
DevOps e Integración Continua:
- Experiencia con herramientas de CI/CD como Jenkins, GitLab CI, o similares.
- Conocimiento en el uso de Docker y Kubernetes para la contenedorización y orquestación de servicios.
Habilidades para colaborar con equipos de DevOps en la implementación de pipelines de integración y despliegue continuo.
Habilidades Complementarias:
Pruebas de Software:
- Experiencia con pruebas unitarias utilizando JUnit y con herramientas de pruebas de integración como TestNG.
- Automatización de pruebas con Selenium o Vaadin TestBench para la validación de interfaces gráficas.
Metodologías Ágiles:
Participación activa en equipos Scrum o Kanban, con capacidad para adaptarse a cambios rápidos y entregar valor continuamente.
Cloud Computing:
- Experiencia con servicios de AWS, Azure o Google Cloud Platform.
- Habilidad para desplegar aplicaciones en la nube, utilizando tecnologías de infraestructura escalables.
Competencias Soft:
- Excelentes habilidades de comunicación para colaborar con equipos de desarrollo, diseño y negocio.
- Capacidad de liderazgo técnico para guiar a desarrolladores junior y mid-level.
- Proactividad en la resolución de problemas y optimización de código.
Educación:
Licenciatura en Ingeniería de Software, Ciencias de la Computación o áreas relacionadas.
Certificaciones en Java, Spring, o plataformas en la nube (AWS, Azure) son deseables.
Responsabilidades del Puesto:
- Desarrollar aplicaciones SPA utilizando Vaadin, garantizando una experiencia de usuario óptima y moderna.
- Diseñar e implementar APIs RESTful para la integración de sistemas y servicios.
- Gestionar grandes volúmenes de datos, optimizando el rendimiento del sistema en tiempo real.
- Colaborar en el diseño y la implementación de microservicios y sistemas distribuidos.
- Participar en la automatización de pruebas y asegurar la calidad del software mediante JUnit y herramientas de testing como Vaadin TestBench.
- Colaborar con equipos de DevOps para optimizar los pipelines de despliegue continuo y la contenedorización con Docker y Kubernetes.
- Optimizar la interfaz gráfica con Vaadin, asegurando la fluidez y eficiencia en aplicaciones web de alto tráfico.