Higher Technician in Multiplatform Application Development
Progresa Centro de Formación Profesional CIEEP

Software EngineerJava Backend · Spring · Oracle · Legacy Modernization
5+ years modernizing and maintaining critical Java applications in production. I diagnose complex issues, design the minimal necessary change, and evolve legacy systems without compromising stability.
Software Engineer specialized in Java backend development, evolutionary maintenance and modernization of enterprise applications, with 5+ years working on production systems within the Java ecosystem.
My work centers on understanding existing applications, pinpointing incidents precisely, building new functionality, and progressively modernizing legacy systems without compromising their stability.
I've worked with Java, Spring Framework, Spring Security, Hibernate/JPA, Oracle, Maven and Tomcat, alongside complementary frontend and integration technologies.
I favor maintainable solutions over impressive ones: I reuse existing architecture before introducing new abstractions, and avoid complexity that doesn't solve a real problem.
Software Engineer
Evolved and maintained the Java backend for management and traceability applications. Led the migration from Java 8/Tomcat 8 to Java 11/Tomcat 9, improving performance. Designed security mechanisms with Spring Security, audit trails with Hibernate Envers, and document generation decoupled from the domain. Implemented blockchain integration via smart contracts and collaborated with NestJS/Angular teams.
Software Engineer
Evolved and maintained enterprise Java applications, integrating them with other systems. Contributed to migrating a WordPress site to Magnolia CMS. Took sole ownership of maintaining and evolving a legacy Java 6 application.
Software Engineer
Corrective and evolutionary maintenance of enterprise applications: incident investigation, new feature development with Java 8/Spring 4 and JavaScript (jQuery), and integration troubleshooting across systems.
Software Engineer
Built two applications for processing and writing files derived from DNA sequencing, with an Angular 11 web client for real-time data reading and visualization.
Higher Technician in Multiplatform Application Development
Progresa Centro de Formación Profesional CIEEP
Representative milestones from my career.
When I pick up a feature or an incident, I try not to jump straight into writing code.
Understand the real problem and which parts of the system are involved before touching any code.
Design the minimal necessary change, reusing what exists and separating responsibilities where it adds value.
Test normal behavior and edge cases, and improve only what genuinely needs it.
The change reaches production without compromising system stability.
Understand before you change
I know how to work with software that already exists: understanding applications written by other people, tracing a problem back to its source, and changing only what genuinely needs to change.
I find these kinds of problems especially interesting:
This works almost all the time, but fails in specific situations
We have an old system and need to add this feature without breaking what already exists
This part of the code has become hard to maintain
We don't know exactly where this incident originates
This query works, but it's starting to struggle as data volume grows
We need to modernize this application, but we can't rewrite it from scratch
We need to integrate this system with another without fully coupling them
Areas I'm actively growing in:
I add the most value on Java backend projects: evolutionary maintenance, legacy application modernization, and solving complex problems.
Tell me briefly about the project or role and I'll get back to you by email.