Java Developer
Java
Java is one of the most widely used programming languages in the world. The main feature introduced by Java back in 1995 was incorporating its own virtual machine with its own binary format, making it easier to run the same program on different architectures and/or platforms once the virtual machine is installed in the system. Another key characteristic is its Garbage Collector, which distinguished it from other programming languages at the time and allows developers to abstract themselves from memory management in their daily work.
GraalVM, a cutting-edge Java project from Oracle.
The widespread adoption of Java, the abundance of open-source tools and libraries in its ecosystem, and its good performance have made it one of the most attractive platforms to choose as a reference technology for backend development. The new LTS version, Java 21, has significantly modernized the programming language and platform with features that make it much more suitable for developing Cloud Native microservices. Some samples of these new features are GraalVM and Project Loom.
Experience
I have more than five years of experience in Java, using Java as the foundation for various development tasks on a digital platform with microservices architecture. My main responsibility has been to deliver optimal and functional code that meets expected performance standards, client specifications and user needs. I have also worked on identifying areas for improvement in terms of platform performance and functionality. These would be the main activities carried out developing in Java.
http API REST
APIs implementation and design.
system_update_alt Backend Development
Analysis of new or existing Backend platforms. Optimization and continuous improvement of legacy applications.
swap_horiz Reactive programming
Use of reactive programming to be able to implement non-blocking services to reach higher availability levels with a lower resource footprint.
hexagon Microservices architecture
Microservices development using architectural patterns such as Event-driven Architecture, Eventual Consistency and CQRS.
directions_boat Kubernetes and Docker
Microservices orchestration with Kubernetes and Docker containers.
Spring Boot
-
Spring Web
Base starter to develop services with blocking REST APIs and traditional web applications. -
Spring Webflux
Base starter to develop REST API services with the reactive programming model. -
Spring Security
Starter with an infinity of security features. Supports OAuth2 and OIDC. -
Spring Data R2DBC
Starter to access relational databases through a reactive API. -
Spring Data JDBC
Starter to connect to relational databases through JDBC. -
Spring Data Redis Reactive
Module to connect a Spring service with a Redis server. Provides an extensive API to execute Redis commands. -
Spring AMQP/RabbitMQ
Module to connect with a RabbitMQ broker. -
Project Reactor
Library based on the Reactive Streams specification. The de facto standard for using the reactive programming model in Java. -
Liquibase
Utility to manage the application database schema migrations. -
Thymeleaf
HTML templating engine
For automatic testing of the functionalities provided by microservices, it is interesting to include the libraries that I have used in order to write automated tests.
It’s worth considering the Java microservice build tools and technologies I have experience with.