Position: Senior Java Engineer
Category: Java
English level: fluent
Years of experience: 3

Throughout my journey as a software engineer, I've had the opportunity to dive deep into a multitude of technologies, including Java, Spring Boot, Kafka, PostgreSQL, Hibernate, and Microservices. This has enabled me to contribute significantly to the projects I've worked on and make substantial improvements to the systems I've built.

I spearheaded the design and implementation of robust Kafka data pipelines, setting up topics and consumer groups that are crucial for our system's asynchronous communication and real-time data processing. This significantly improved the efficiency and reliability of our services, enabling them to handle large volumes of data seamlessly.

Recognizing the importance of real-time data monitoring, I innovated a metrics system for tracking the performance and reliability of Kafka messages. It provides detailed insights into the number of consumed and skipped records, failed messages, and various types of data quality violations. This has greatly enhanced our ability to identify and resolve issues quickly, ensuring high data quality and system stability.

In an effort to reduce redundancy and increase efficiency, I led the initiative to create an internal Java library. It replaced a substantial amount of duplicated business logic that was previously scattered across multiple microservices. This not only improved code maintainability but also reduced potential errors and inconsistencies, making our microservices more robust and reliable.

One of the major challenges I faced was addressing a race-condition-like problem that was causing data inconsistencies due to concurrent consumption and persistence of Kafka topic records. It was a complex issue that required careful analysis and problem-solving. I successfully identified the root cause and proposed effective solutions, ultimately ensuring the consistency and integrity of our data.
In my current role as a Strong Middle software engineer (since September 2022), I work primarily with technologies such as Java 11/17, Spring Boot, Hibernate, PostgreSQL, and Kafka among others. In terms of projects, I've designed and implemented a Kafka topic & consumer group which is currently used in production. I've also set up a microservice from scratch and helped bring it to a Live state.

Moreover, I've introduced real-time metrics for Kafka messages which allowed us to monitor the number and types of messages being consumed by our service. This idea has been fully implemented and has greatly improved our data quality tracking. I've also solved several data inconsistency issues due to race conditions in our Kafka topic consumption and persistence processes.

In terms of team dynamics, I've been involved in onboarding new team members, including a new Solution Architect, by explaining our team's microservices infrastructure and scope.

One area I am interested in improving is my understanding of more complex distributed systems, as I believe it will be key to my growth as a developer and to the performance of our team's services.

Previously, I worked as a Middle software engineer, I advocated for the replacement of SVN with Git and GitFlow, which we eventually adopted. In addition, I implemented a distributed logging system for microservices using Logstash/Elasticsearch and Grafana, and a complex payment flow using the SAGA pattern.
In terms of expectations for my future role, I am enthusiastic about continuing to work on complex, distributed systems and contribute to meaningful, business-critical projects. I have a strong passion for applying modern architectural styles, like Hexagonal Architecture, and want to further expand my expertise in Kafka and Microservices.

However, I am not interested in working with outdated technologies or in projects that lack scope for learning and growth. I'm looking for a role where I can continue to expand my skill set, work on challenging projects, and make a substantial impact on the business.