Languageeng
← Back to experience

Reactive Kotlin Backend Developer

Telefónica
Telefónica
Feb 2023 - Jan 2024⏱️ 2minutes read
KotlinSpring BootProject ReactorAzure Kubernetes ServiceAzure IoTHubAzure EventHubsGrafanaGitHub Actions

Welcome to Big Tech

Telefónica is one of Spain’s largest telecommunications companies and one of the country’s biggest technology organizations. I joined Telefónica’s Architecture department in early 2023, through a consultant position with InnoIT, to work on their IoT platform to ingest a massive number of events daily, HaaC (Home as a Computer).

Fast and Furious Reactive

Devices deployed in customers’ homes and/or companies continuously sent telemetry to Azure IoT Hub, tunneled through EventHubs where our Kotlin services processed messages to extract, enrich and persist the relevant information.

This was my first reactive programming project, as they used Project Reactor, allowing our services to process large volumes of events through a non-blocking, event-driven architecture. The system used observability tools such as Prometheus and Grafana to monitor throughput, detect anomalies, and trigger alerts based on telemetry patterns and system load.

This project became an intensive introduction to reactive programming. Besides deepening my Kotlin knowledge, it completely changed the way I reason about asynchronous systems and concurrent workloads.

Code reviews were particularly demanding. Pull requests were expected to meet high standards of readability, maintainability and consistency before being accepted. Although challenging at first, that culture had a lasting impact on the way I write software today.

Operations were so common and in such volume, that I had the opportunity to participate in the implementation of a Redis cache-aside with Fingerprinting, to unburden MongoDB from the constant read operations (you can read more about this here)

Final Thougths

Looking back, the greatest value of this experience wasn’t learning Project Reactor or working with Azure’s event-driven ecosystem. It was joining a team with a strong engineering culture, where code quality, well-defined workflows and constructive code reviews were considered essential parts of the development process. Those standards left a lasting impression on me and continue to influence how I approach software engineering today.