<p></p> <p data-pm-slice="1 1 []"><strong>Título del puesto:</strong> Desarrollador Backend Java Semisenior</p> <p><strong>Habilidades clave:</strong> Java 17 y 21, Spring Boot, Spring Security, Spring Cloud, microservicios, programación reactiva, Azure, Azure Service Bus, Azure Functions, Redis, OAuth2, JWT, pruebas automatizadas, arquitectura limpia, arquitectura hexagonal, Azure DevOps, GitHub Actions.</p> <p><strong>Experiencia:</strong> Mínimo 3 años de experiencia en desarrollo backend con Java.</p> <p><strong>Ubicación:</strong> Lima, Perú.</p> <p><strong>Modalidad:</strong> Híbrida, con asistencia presencial en La Victoria de 2 a 4 días al mes.</p> <p>En Coforge estamos buscando un <em><strong>Desarrollador Backend Java Semisenior</strong></em> con experiencia en desarrollo de aplicaciones backend, arquitectura de microservicios y servicios en la nube de Azure. Buscamos un profesional con capacidad para diseñar e integrar soluciones seguras y escalables, resolver problemas técnicos de complejidad media y contribuir a la evolución de aplicaciones mediante buenas prácticas de desarrollo, pruebas y documentación técnica.</p> <p><strong>Responsabilidades principales</strong></p> <ul> <li>Desarrollar, mantener y refactorizar aplicaciones backend utilizando Java y el ecosistema Spring.</li> <li>Diseñar e integrar microservicios aplicando principios de arquitectura limpia, arquitectura hexagonal y conceptos básicos de diseño orientado al dominio (DDD).</li> <li>Implementar soluciones de programación concurrente y asíncrona mediante herramientas como CompletableFuture y Virtual Threads.</li> <li>Desarrollar componentes con programación reactiva utilizando Spring WebFlux, Mono y Flux.</li> <li>Implementar mecanismos de comunicación entre servicios mediante Azure Service Bus, productores, consumidores, reintentos y gestión de mensajes fallidos (DLQ).</li> <li>Configurar mecanismos de seguridad y autenticación utilizando Spring Security, OAuth2, JWT, Microsoft Entra ID y Azure Key Vault.</li> <li>Implementar estrategias de almacenamiento en caché con Redis, incluyendo TTL, Cache Aside e invalidación de caché.</li> <li>Desarrollar y mantener pruebas unitarias y de integración utilizando Mockito y Testcontainers.</li> <li>Aplicar patrones de diseño y resiliencia, incluyendo Strategy, Observer, Adapter, Facade, Circuit Breaker, Retry, Timeout y Bulkhead.</li> <li>Utilizar servicios de Azure, como Functions y Application Insights, para implementar soluciones y monitorear el comportamiento de las aplicaciones.</li> <li>Participar en procesos de integración y despliegue continuo mediante Azure DevOps y GitHub Actions.</li> <li>Colaborar en la implementación básica de infraestructura como código utilizando Terraform o Bicep.</li> <li>Participar en iniciativas de integración de inteligencia artificial mediante Spring AI y Azure OpenAI, así como en implementaciones básicas de RAG y componentes MCP.</li> <li>Analizar y resolver problemas de complejidad media, trabajar con código heredado y realizar refactorizaciones controladas.</li> <li>Elaborar y mantener documentación técnica, incluyendo README, Swagger/OpenAPI, diagramas C4, diagramas de secuencia, contratos de integración, guías de resolución de problemas, procedimientos operativos y registros de decisiones de arquitectura (ADR).</li> </ul> <p><strong>Requisitos indispensables</strong></p> <ul> <li>Contar con mínimo 3 años de experiencia en desarrollo backend con Java.</li> <li>Tener conocimientos de Java 17 o 21, programación concurrente, CompletableFuture y Virtual Threads.</li> <li>Manejar Spring, Spring Boot, Spring Security y Spring Cloud.</li> <li>Contar con experiencia en desarrollo e integración de microservicios.</li> <li>Tener conocimientos de programación reactiva con WebFlux, Mono y Flux.</li> <li>Conocer principios de arquitectura limpia, arquitectura hexagonal y conceptos básicos de DDD.</li> <li>Manejar patrones de diseño GOF y patrones distribuidos de resiliencia.</li> <li>Tener conocimientos de Azure Service Bus, Azure Functions, Azure Key Vault y Application Insights.</li> <li>Contar con conocimientos de Redis y estrategias de gestión de caché.</li> <li>Comprender la mensajería asíncrona, los mecanismos de reintento y la gestión de mensajes fallidos.</li> <li>Tener conocimientos de seguridad mediante OAuth2, JWT y Microsoft Entra ID.</li> <li>Manejar pruebas unitarias y de integración con Mockito y Testcontainers.</li> <li>Contar con conocimientos de observabilidad mediante métricas, trazas y herramientas de monitoreo.</li> <li>Tener experiencia o conocimientos de integración y despliegue continuo con Azure DevOps o GitHub Actions.</li> <li>Contar con capacidad analítica para resolver problemas técnicos y realizar refactorizaciones controladas.</li> <li>Tener habilidades para elaborar y mantener documentación técnica de soluciones e integraciones.</li> </ul> <p><strong>Requisitos deseables</strong></p> <ul> <li>Conocimientos básicos de infraestructura como código con Terraform o Bicep.</li> <li>Experiencia con Spring AI e integración con Azure OpenAI.</li> <li>Conocimientos de MCP, incluyendo clientes y servidores MCP.</li> <li>Experiencia en implementaciones básicas de generación aumentada por recuperación (RAG).</li> <li>Conocimientos de diagr