Desarrollador Senior Java con experiencia en API

CDMX, México

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.