Desarrollo Java
Desarrollo backend a medida y evolutivos sobre aplicaciones empresariales Java.
Ver servicio →Modernización Java · Spring Boot · APIs REST
Para empresas con un backend en Java 8, javax o Spring antiguo que no puede dejar de dar servicio. Lo llevo a Jakarta EE y Spring Boot 3 por fases que llegan a producción, y también desarrollo servicios y APIs REST nuevos en Java. Trabajo desde Gran Canaria, en remoto para equipos de toda España.
Llamada de 30 minutos, sin coste. Respondo en menos de 48 horas.
El primer paso
Una llamada de 30 minutos para entender tu sistema antes de hablar de plazo o precio. Sin compromiso: si no puedo ayudarte, te lo digo.
javax.* → jakarta.*, respuesta en las preguntas frecuentesmarca el ritmo
Mecánico en el código propio. Lo que decide si son semanas o meses son las librerías de terceros sin versión compatible.
Hibernate 5 → 6, respuesta en las preguntas frecuentescambia resultados
El motor de HQL se reescribió: una consulta que compila puede devolver otra cosa. Se compara el SQL generado antes y después.
JBoss EAP antiguo, respuesta en las preguntas frecuentesfija el techo
Las versiones antiguas no soportan las LTS actuales de Java. El servidor decide hasta dónde se puede subir y en qué orden.
Pocas pruebas, respuesta en las preguntas frecuentesva primero
Sin una red que demuestre que el comportamiento se mantiene, construirla es la primera fase, no un extra.
Ejemplos generales del ecosistema Java, no de un cliente.
Cuándo tiene sentido llamarme
Cómo trabajo
30 minutos para entender qué hay y decirte si puedo ayudarte. Si la respuesta es no, te lo diré.
Inventario de dependencias, incompatibilidades detectadas, riesgos ordenados por impacto y un plan por fases con el esfuerzo estimado de cada una. Es un trabajo acotado y el documento es tuyo aunque después no sigamos juntos.
Incrementos que llegan a producción. Cada fase deja la aplicación funcionando y con sus pruebas, sin ramas de migración que luego nadie se atreve a fusionar.
Documentación de qué se ha cambiado y por qué, decisiones registradas y una sesión con tu equipo. El objetivo es que podáis seguir sin mí.
Modernización
Las aplicaciones empresariales no siempre pueden sustituirse desde cero. Estos son los cuatro caminos de modernización más habituales, cada uno con lo que implica y por dónde se empieza.
Evolución de aplicaciones Java EE hacia Jakarta EE, analizando compatibilidad, dependencias y servidores.
Ver reto →Java LegacyQué se analiza antes de modernizar: inventario, deuda técnica, riesgos y por dónde empezar.
Ver reto →Spring BootEvolución de aplicaciones Java hacia Spring Boot y arquitecturas backend más actuales.
Ver reto →Versiones JavaAnálisis de compatibilidad y evolución hacia versiones más actuales de Java.
Ver reto →Servicios
Cuatro formas de trabajar sobre un backend Java: construir lo que falta, modernizar lo que bloquea, o las dos cosas por fases.
Desarrollo backend a medida y evolutivos sobre aplicaciones empresariales Java.
Ver servicio →Desarrollo de servicios y APIs con Spring Boot, desde cero o sobre lo que ya existe.
Ver servicio →Diseño y desarrollo de APIs REST para integrar aplicaciones y servicios.
Ver servicio →Consultoría de modernización: análisis, migración progresiva y refactorización por fases.
Ver servicio →Tecnologías
No es una lista de logos: son las cuatro capas donde suelen aparecer los problemas cuando hay que evolucionar una aplicación Java con años encima.
El salto de Java 8 a 17 o 21 rara vez se queda en cambiar el JDK: el sistema de módulos, la retirada de APIs que antes venían incluidas y el fin de soporte del servidor arrastran a las dependencias. En Jakarta EE 9 el cambio de javax.* a jakarta.* afecta a todas las librerías, no solo al código propio.
La mayoría de aplicaciones no necesitan una migración completa de golpe: los servicios nuevos se levantan en Spring Boot y conviven con lo anterior mientras se decide qué se mueve y en qué orden. El salto de Spring Boot 2 a 3 arrastra el mismo cambio de espacio de nombres y exige una versión de Java con soporte.
Es donde más suele doler una modernización. Mapeos que arrastran decisiones de hace diez años, consultas N+1 que no se notaron hasta que la tabla creció, LazyInitializationException en los bordes de la transacción, y el salto de Hibernate 5 a 6 con el cambio a jakarta.persistence y la reescritura del motor de HQL.
El trabajo consiste en revisar el modelo, aislar las consultas problemáticas y hacer el cambio comparando el SQL generado antes y después.
El servidor de aplicaciones condiciona hasta dónde se puede subir de versión, y las integraciones existentes marcan qué se puede cambiar sin avisar a nadie. Antes de mover una pieza hay que saber quién la está consumiendo y con qué contrato.
Preguntas frecuentes
Nada. Es una llamada de 30 minutos, sin coste y sin compromiso. Si después tiene sentido seguir, te envío una propuesta de análisis con alcance y precio cerrados antes de empezar, para que decidas con la cifra delante.
El documento del análisis es tuyo: inventario de dependencias, incompatibilidades, riesgos ordenados por impacto y un plan por fases. Puedes ejecutarlo con tu equipo o con otro proveedor.
Sí. Trabajo desde Gran Canaria, en remoto, para empresas de Canarias y del resto de España. Con equipos de la península solo hay que tener en cuenta la hora de diferencia al cuadrar llamadas y ventanas de despliegue.
Normalmente sí. El cambio de javax.* a jakarta.* es mecánico en el código propio; lo que marca el ritmo son las dependencias de terceros que todavía no han publicado una versión compatible. Ese inventario es lo primero que se hace, porque es lo que decide si la migración dura semanas o meses.
Depende de la combinación concreta. Las versiones recientes de WildFly y Tomcat soportan las versiones LTS actuales de Java; las versiones antiguas de JBoss EAP no. Forma parte de la matriz de compatibilidad que sale del análisis inicial, junto con las dependencias y el build.
Hibernate 6 es el que trae el cambio de espacio de nombres, y además reescribió el motor de consultas: HQL que antes funcionaba puede comportarse de otra manera. Se aborda comparando el SQL generado antes y después sobre las consultas críticas, no confiando en que compile.
Depende del inventario, y por eso existe el análisis inicial: para responder con datos en vez de con una cifra al aire. Cualquiera que dé un número antes de mirar el código y las dependencias se lo está inventando.
No. Un monolito modular, bien probado y desplegable es una arquitectura legítima, y para muchas aplicaciones empresariales es la correcta. Trocear un sistema que nadie entiende del todo suele multiplicar el problema en lugar de resolverlo.
Por construir las que demuestren que el comportamiento actual se mantiene, aunque sean pruebas de caracterización feas sobre los flujos críticos. Sin esa red no hay forma de distinguir un cambio correcto de uno que rompe algo que nadie estaba mirando.
Contacto
Cuéntame el caso en unas líneas. La llamada dura 30 minutos, no tiene coste y no te compromete a nada.