0% encontró este documento útil (0 votos)
7 vistas4 páginas

Backend Java

En RIMAC Seguros, trabajé en el desarrollo de microservicios en Java utilizando Spring Boot, enfocándome en la implementación de APIs REST para la gestión de pólizas y siniestros. Participé en la automatización de procesos, optimización de servicios y aseguramiento de la calidad del código mediante TDD y prácticas de seguridad como OAuth 2.0 y JWT. Además, utilicé programación reactiva con WebFlux para manejar alto tráfico de solicitudes y mejorar la eficiencia en el procesamiento de eventos en tiempo real.

Cargado por

Lorena Amesqueta
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
7 vistas4 páginas

Backend Java

En RIMAC Seguros, trabajé en el desarrollo de microservicios en Java utilizando Spring Boot, enfocándome en la implementación de APIs REST para la gestión de pólizas y siniestros. Participé en la automatización de procesos, optimización de servicios y aseguramiento de la calidad del código mediante TDD y prácticas de seguridad como OAuth 2.0 y JWT. Además, utilicé programación reactiva con WebFlux para manejar alto tráfico de solicitudes y mejorar la eficiencia en el procesamiento de eventos en tiempo real.

Cargado por

Lorena Amesqueta
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 4

¿Qué tipo de proyectos atendiste en RIMAC Seguros como Backend

Java?

"En RIMAC Seguros, trabajé en el desarrollo y mantenimiento de microservicios en


Java con Spring Boot. Uno de los proyectos en los que participé fue la implementación
de APIs REST para la gestión de pólizas y siniestros, veia que los datos estuvieran
actualizados en tiempo real y fueran accesibles para otras áreas de la empresa."

¿Cómo aplicaste Java en tu rol?

"Mi rol consistió en desarrollar, mejorar y optimizar microservicios dentro de una


arquitectura basada en Spring Boot. Usé Spring Data JPA para la gestión de bases de
datos Oracle, también optimizaba los tiempos de respuesta. También participé en la
implementación de APIs RESTful siguiendo principios SOLID, asegurando un código
escalable y mantenible. Además, trabajé en la integración de sistemas con otros
equipos, manejando autenticación mediante OAuth 2.0 y JWT para garantizar
seguridad en los servicios."

¿En qué proyectos específicos trabajaste?

"Uno de los proyectos en los que trabajé fue la automatización del proceso de emisión
de pólizas. Antes, este proceso requería validaciones manuales y revisión de
información en distintas bases de datos. Lo que hicimos fue desarrollar un
microservicio que automatizaba estas validaciones y generaba la póliza en formato
PDF, enviándola automáticamente al banco. Para ello, utilizamos Spring Boot,
integraciones con APIs de terceros y generación de documentos con Apache PDFBox.
Esta solución redujo en un 40% el tiempo de emisión y minimizó errores humanos.

APIs RESTful: Son interfaces de programación que permiten que diferentes sistemas
se comuniquen a través de internet siguiendo las reglas de REST (Representational
State Transfer). Usan peticiones HTTP (GET, POST, PUT, DELETE) para intercambiar
datos.

¿Cómo manejabas la integración con otros sistemas?

"En RIMAC, participé en la integración con otros sistemas desarrollando y


consumiendo APIs RESTful con Node.js. Implementé endpoints para la consulta y
actualización de pólizas, asegurando la comunicación entre el CRM y el sistema de
gestión de siniestros. Por ejemplo, trabajé en una API que permitía actualizar el estado
de una póliza cuando se registraba un siniestro, validando los datos con middleware y
manejando respuestas en formato JSON. Además, utilicé Postman para pruebas y Git
para control de versiones."

Entiendo cómo HATEOAS facilita la navegación en APIs RESTful, cómo Swagger


ayuda a documentarlas y cómo Apache Kafka permite la mensajería en tiempo real.

Kafka lo usé para enviar eventos cuando una póliza se creaba. Spring Boot maneja la
producción y consumo de mensajes con Spring Kafka."
¿Cómo garantizabas la calidad y seguridad del código?

"Para garantizar la calidad del código, seguíamos buenas prácticas como TDD y
realizábamos revisiones de código en Bitbucket. Implementé pruebas unitarias con
JUnit y Mockito para validar la funcionalidad de los métodos, y pruebas de integración
con Spring Boot Test para verificar la comunicación entre componentes. En cuanto a
seguridad, aplicamos OAuth 2.0 y JWT para la autenticación de usuarios y protegimos
los datos sensibles antes de almacenarlos en la base de datos."

OAuth 2.0: Es un protocolo de autenticación que permite a las aplicaciones acceder a recursos
de un usuario sin necesidad de compartir su contraseña. Se usa en inicios de sesión con terceros,
como cuando entras a una web usando tu cuenta de Google o Facebook.

JWT (JSON Web Token): Es un formato de token seguro que se usa para la autenticación y el
intercambio de información entre partes. Contiene datos en un formato codificado y se usa
mucho en APIs para verificar la identidad del usuario sin necesidad de consultar la base de datos
en cada solicitud.

¿Cómo optimizaste los servicios en los que trabajaste?

"En un proyecto de gestión de siniestros, detectamos que algunas consultas a la base de


datos eran lentas debido a joins innecesarios. Optimizamos el servicio utilizando caché
con Redis y mejorando los índices en Oracle, logrando reducir los tiempos de
respuesta de 3 segundos a menos de 500ms. También implementamos paginación en las
consultas para evitar la sobrecarga del sistema."

Redis es una base de datos en memoria que se usa como caché para acelerar el acceso a
datos frecuentes. Almacena información temporalmente, evitando consultas repetitivas.

¿Cómo aplicas los principios SOLID en tus proyectos?

"En mis proyectos con Java y Spring Boot, aplico SOLID para mantener el código
limpio, modular y fácil de mantener. Un ejemplo es cuando diseñé un servicio de
emisión de pólizas, donde apliqué el principio de Responsabilidad Única (SRP)
separando la lógica de negocio en una capa de servicio y la interacción con la base de
datos en una capa de repositorio. Además, utilicé Inversión de Dependencias (DIP)
inyectando repositorios con Spring Boot en lugar de instanciarlos directamente, lo que
facilitó la prueba y reutilización del código."

¿Cómo diseñarías un microservicio para la gestión de pólizas en


RIMAC?

"Seguiría una arquitectura hexagonal en Spring Boot, con capas bien definidas
(controlador, servicio, repositorio). Utilizaría Spring Data JPA para la persistencia y
Exponer APIs REST con Spring Web."
"¿Qué patrones de diseño has aplicado en tus proyectos?"

"He utilizado el Patrón Singleton para gestionar instancias únicas en servicios,


Factory Method para encapsular la creación de objetos, y Strategy para seleccionar
dinámicamente algoritmos según el tipo de póliza."

Desarrollo en Azure (Containers, Data Factory, Databricks)

Conozco Azure a nivel teórico y lo he explorado en proyectos personales a modo de


práctica. He trabajado con contenedores, he visto cómo se despliegan microservicios en
Azure Kubernetes Service (AKS) y cómo se integran datos con Azure Data Factory y
Databricks

Programación Reactiva (RxJava/WebFlux)

¿Qué ventajas ofrece la Programación Reactiva en Spring Boot?

"WebFlux permite manejar alto tráfico de solicitudes de manera eficiente usando


programación no bloqueante. Lo usé en un proyecto donde necesitábamos procesar
eventos de pólizas en tiempo real."

🔥 ¿Cuándo usar Programación Reactiva en Spring Boot?

Cuando tienes alto volumen de tráfico (Ejemplo: una API de cotizaciones en


tiempo real).
Cuando necesitas procesar eventos en streaming (Ejemplo: notificaciones de
cambios en pólizas).
Cuando usas bases de datos reactivas como MongoDB o Redis.

Si el sistema es pequeño o no tiene muchas solicitudes concurrentes, Spring


MVC (bloqueante) es suficiente.

Programación Reactiva (RxJava/WebFlux)

"Usé WebFlux a nivel junior en un proyecto donde necesitábamos procesar


actualizaciones de pólizas en tiempo real. El reto era que múltiples usuarios consultaban
y actualizaban pólizas simultáneamente, lo que podía generar demoras si usábamos un
enfoque bloqueante. Implementamos WebFlux para manejar estas solicitudes de forma
asíncrona y reactiva, permitiendo que el sistema procesara eventos sin afectar el
rendimiento, asegurando respuestas rápidas y escalabilidad."

"También utilicé WebFlux en un servicio de notificaciones para clientes. El problema


era que cuando se aprobaba una póliza, debíamos enviar notificaciones a múltiples
canales (correo, SMS y app móvil) sin ralentizar el flujo principal de la aplicación. Con
WebFlux, logramos manejar estas tareas de manera asíncrona, asegurando que la
respuesta al usuario fuera inmediata mientras las notificaciones se enviaban en segundo
plano."

"¿Cuál es la diferencia entre Spring MVC y Spring WebFlux?"

"Spring MVC es un framework imperativo que usa un modelo bloqueante basado en


hilos, ideal para aplicaciones estándar. Spring WebFlux es reactivo, no bloqueante y
basado en flujos de datos, lo que lo hace más eficiente para sistemas con alto tráfico o
procesamiento en tiempo real."

❓ "¿Qué es RxJava y cómo se compara con WebFlux?"

"RxJava es una librería independiente que implementa Programación Reactiva en Java,


mientras que WebFlux es un framework dentro de Spring Boot que usa Reactor (similar
a RxJava) para construir aplicaciones web asíncronas y no bloqueantes."

❓ "¿Cuándo usarías Spring WebFlux en lugar de Spring MVC?"

"Usaría WebFlux cuando necesito manejar miles de solicitudes concurrentes sin


bloquear hilos, por ejemplo, en un sistema de notificaciones en tiempo real o cuando
trabajo con bases de datos NoSQL como MongoDB."

Programación Reactiva → Paradigma basado en eventos y flujos de datos.


RxJava → Librería para manejar datos reactivos en Java.
Spring WebFlux → Framework reactivo dentro de Spring Boot para APIs no
bloqueantes.
Spring Boot → Framework general para crear aplicaciones Java, soporta tanto
WebFlux (reactivo) como Spring MVC (imperativo).

❓ "¿Qué significa para ti ser reactivo?"

"Ser reactivo significa procesar eventos en tiempo real de manera no bloqueante. En


lugar de esperar respuestas de manera secuencial, el sistema reacciona a cambios y
flujos de datos de forma eficiente."

❓ "¿Qué es Reactor y cómo se diferencia de RxJava?"

"Reactor es la implementación de Programación Reactiva para Spring Boot, diseñada


para trabajar con WebFlux y aplicaciones no bloqueantes. A diferencia de RxJava, que
es independiente, Reactor usa Mono y Flux para manejar flujos de datos."

También podría gustarte