Idiomaesp
← Volver a experiencia

Desarrollador Backend Kotlin Reactivo

Telefónica
Telefónica
Feb 2023 - Ene 2024⏱️ 2minutos de lectura
KotlinSpring BootProject ReactorAzure Kubernetes ServiceAzure IoTHubAzure EventHubsGrafanaGitHub Actions

Bienvenido a una Big Tech

Telefónica es una de las empresas de telecomunicaciones más grandes de España y una de las organizaciones tecnológicas más importantes del país. Me incorporé al departamento de Arquitectura de Telefónica a principios de 2023, a través de una posición de consultoría con InnoIT, para trabajar en su plataforma IoT encargada de ingestar un volumen masivo de eventos diarios: HaaC (Home as a Computer).

Fast and Furious Reactive

Los dispositivos desplegados en los hogares y/o empresas de los clientes enviaban continuamente telemetría a Azure IoT Hub, la cual se canalizaba a través de EventHubs, donde nuestros servicios en Kotlin procesaban los mensajes para extraer, enriquecer y persistir la información relevante.

Este fue mi primer proyecto de programación reactiva, ya que utilizaban Project Reactor, lo que permitía a nuestros servicios procesar grandes volúmenes de eventos a través de una arquitectura no bloqueante y dirigida por eventos. El sistema utilizaba herramientas de observabilidad como Prometheus y Grafana para monitorizar el rendimiento, detectar anomalías y activar alertas basadas en los patrones de telemetría y la carga del sistema.

Este proyecto se convirtió en una introducción intensiva a la programación reactiva. Además de profundizar en mi conocimiento de Kotlin, cambió por completo la forma en que razono sobre los sistemas asíncronos y las cargas de trabajo concurrentes.

Las revisiones de código eran especialmente exigentes. Se esperaba que las pull requests cumplieran con altos estándares de legibilidad, mantenibilidad y consistencia antes de ser aceptadas. Aunque al principio fue un desafío, esa cultura tuvo un impacto duradero en la forma en que escribo software hoy en día.

Las operaciones eran tan comunes y en tal volumen, que tuve la oportunidad de participar en la implementación de una caché Redis tipo cache-aside con fingerprinting, para liberar a MongoDB de las constantes operaciones de lectura (puedes leer más sobre esto aquí).

Reflexiones finales

Echando atrás la mirada, el mayor valor de esta experiencia no fue aprender Project Reactor ni trabajar con el ecosistema dirigido por eventos de Azure. Fue unirme a un equipo con una sólida cultura de ingeniería, donde la calidad del código, los flujos de trabajo bien definidos y las revisiones de código constructivas se consideraban partes esenciales del proceso de desarrollo. Esos estándares me dejaron una impresión duradera y continúan influyendo en cómo abordo la ingeniería de software en la actualidad.