Cookies

This website uses cookies to obtain statistics from users navigation. If you go on browsing we consider you accept them.

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

  1. Spring Web
    Base starter to develop services with blocking REST APIs and traditional web applications.
  2. Spring Webflux
    Base starter to develop REST API services with the reactive programming model.
  3. Spring Security
    Starter with an infinity of security features. Supports OAuth2 and OIDC.
  4. Spring Data R2DBC
    Starter to access relational databases through a reactive API.
  5. Spring Data JDBC
    Starter to connect to relational databases through JDBC.
  6. Spring Data Redis Reactive
    Module to connect a Spring service with a Redis server. Provides an extensive API to execute Redis commands.
  7. Spring AMQP/RabbitMQ
    Module to connect with a RabbitMQ broker.
  8. Project Reactor
    Library based on the Reactive Streams specification. The de facto standard for using the reactive programming model in Java.
  9. Liquibase
    Utility to manage the application database schema migrations.
  10. 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.

  1. Spring Test starter
  2. Cucumber
  3. jUnit
  4. Mockito

It’s worth considering the Java microservice build tools and technologies I have experience with.

  1. Gradle
  2. Maven
  3. Docker
  4. Kubernetes
  5. Helm