Descripción
Para importante cliente del rubro Retail, estamos buscando el siguiente perfil Ingeniero Fullstack - JAVA - Spring Boot.
Habilidades Básicas
- Java: Dominio profundo del lenguaje Java, incluyendo conceptos como orientación a objetos, colecciones, concurrencia, manejo de excepciones y streams.
Versiones de Java: 11, 17 y 21
- Spring Framework: Entendimiento sólido de los módulos principales de Spring, como Spring Core, Spring MVC, Spring Data JPA y Spring Security, Spring WebFlux.
- Spring Boot: Capacidad para crear aplicaciones Spring rápidamente utilizando Spring Boot, incluyendo configuración automática, autoconfiguración y arranque de aplicaciones.
- Bases de Datos: Conocimiento de bases de datos relacionales (SQL) y no relacionales (NoSQL), como MySQL, PostgreSQL, MongoDB. Experiencia en SQL y ORM (Object-Relational Mapping) como Hibernate.
- RESTful APIs: Diseño y desarrollo de APIs RESTful utilizando Spring MVC, incluyendo manejo de HTTP methods, status codes, y formatos de datos como JSON.
- Control de Versiones: Uso fluido de Git para gestionar el código fuente y colaborar en equipos.
- Construcción y Empaquetado: Experiencia con herramientas de construcción como Maven o Gradle para gestionar dependencias y empaquetar aplicaciones.
- Pruebas: Conocimiento de diferentes tipos de pruebas (unitarias, de integración, end-to-end) y frameworks de testing como JUnit y Mockito.
Habilidades Avanzadas
- Microservicios: Diseño y desarrollo de aplicaciones basadas en microservicios utilizando Spring Cloud.
- Mensajería: Conocimiento de sistemas de mensajería como Kafka para construir aplicaciones asincrónicas.
- Caching: Implementación de estrategias de caching utilizando herramientas como Redis para mejorar el rendimiento de las aplicaciones.
- Seguridad: Protección de aplicaciones contra vulnerabilidades comunes como inyección SQL, XSS, CSRF. Implementación de mecanismos de autenticación y autorización oauth2, jwt.
- Diseño de Patrones: Aplicación de patrones de diseño como Singleton, facade, Repository, entre otros, para mejorar la estructura y mantenibilidad del código.
- Performance Tuning: Optimización de aplicaciones para mejorar su rendimiento y escalabilidad.
- Programación funcional: Conocimientos del paradigma de programacion funcional.
Además de estas habilidades técnicas, un buen desarrollador backend debería tener:
- Habilidades de resolución de problemas: Capacidad para identificar y solucionar problemas de manera eficiente.
- Pensamiento crítico: Habilidad para analizar problemas complejos y diseñar soluciones óptimas.
- Comunicación: Capacidad para comunicarse de manera efectiva con otros miembros del equipo.
- Aprendizaje continuo: Disposición para mantenerse actualizado con las últimas tecnologías y tendencias.
Frameworks y Herramientas Adicionales:
- Spring Security: Para gestionar la seguridad de las aplicaciones.
- Spring Data JPA: Para interactuar con bases de datos relacionales.
- Spring Cloud: Para construir aplicaciones basadas en microservicios.
- Spring WebFlux: Para aplicaciones de alta concurrencia
- Docker: Para contenerizar aplicaciones.
- Kubernetes: Para orquestar contenedores.
- Jenkins y GitLab CI: Para automatizar procesos de construcción y despliegue.
- Obserbibilidad: Para monitorear aplicaciones.
Alguna herramienta de monitoreo
- Dynatrace
- New Relic
- Grafana
Para postular correctamente al proceso de reclutamiento se necesita:
Tener CV Actualizado.
Indicar disponibilidad de trabajo en días.
Indicar si se encuentra trabajando.
Disponible para trabajo híbrido en ciudad de Santiago.