El código como medio de expresión.
La precision como meta.
EL aprendizaje como motor.
Juan Fuente - Desarrollador full stack & web3
Especializado en React/TypeScript y Java/Spring Boot, con demostrada capacidad para la autonomía operativa en entornos de alta exigencia.
Durante mi experiencia en una startup fintech, trabajé 100% en remoto como el único desarrollador frontend en una aplicación de inversiones en producción. Realicé de forma autónoma la ampliación y refactorización de componentes complejos y colaboré en la resolución paulatina de más de 40 incidencias (errores, fallos de seguridad y mejoras UX) que fui detectando.
Mis responsabilidades incluían la integración con el backend y el despliegue a entornos de preproducción. Mi habilidad para desarrollar a partir de diseños en Figma, para debuggear fallos en el backend (Node.js) o para manejar la base de datos con PGAdmin, me permitió asumir un rol más amplio y mejorar el producto mientras lo ampliaba. He demostrado una gran capacidad de adaptación y logré un alto rendimiento en un tiempo contenido.
Además, tengo conocimientos de Scrum y metodologías ágiles, por lo que estoy preparado para adaptarme e integrarme en cualquier entorno de trabajo profesional con rapidez, y sin necesidad de supervisión constante.
.
Java - Javascript - Typescript - React - Angular - Spring boot - Node.js - SQL - HTML - CSS - Tailwind - Solidity - Foundry
Algunos de mis proyectos
Foody Market
Java - Spring Boot - Typescript - React - Vite - Tailwind - PostgreSQL - JWT - Docker
Video resumen de la mayoría de las funcionalidades
Puedes clickar en las imágenes para ampliarlas y ver detalles y funcionalidades
RETOS Y APRENDIZAJES
-
Modelado de Datos Complejo y Consultas
Afronté el desafío de diseñar un esquema PostgreSQL que reflejara relaciones complejas: usuarios multi-rol, restaurantes con tipologías comunes, productos con categorías por restaurante, y pedidos vinculados a múltiples entidades. Optimizar las consultas para obtener datos relacionados (ej. historiales de pedido detallados para cliente y propietario) fue un reto considerable debido a la complejidad, impactando en el rendimiento y requiriendo soluciones específicas (ej. creación de nuevas tablas para eficientar la categorización)
-
Evolución y Reconstrucción Frontend/Backend
El proyecto implicó ampliar significativamente un backend Java/Spring base. Decidí descartar el frontend inicial y reconstruirlo con React/TypeScript para mejorar drásticamente la UX y la arquitectura, lo que a su vez llevó a descubrir y tener que implementar nuevos requisitos funcionales no contemplados inicialmente.
-
Optimización Backend (N+1 y Refactorización)
Me enfrenté al problema de rendimiento N+1 en las consultas a la base de datos desde Spring Data JPA. Esto requirió un trabajo activo de identificación y refactorización de endpoints y métodos en los repositorios para lograr una recuperación de datos más eficiente y fiable.
-
Integración de Almacenamiento Externo (Supabase)
Implementé y debuggeé el flujo completo para la subida de imágenes (ej. productos) desde el frontend al bucket de Supabase Storage, incluyendo la gestión segura de las URLs generadas y su correcta asociación en la base de datos PostgreSQL
-
Debugging de Seguridad y Permisos (JWT)
Dediqué tiempo a solventar errores de comunicación y autorización entre frontend y backend derivados de la validación de JWT y la correcta aplicación de permisos diferenciados por rol (permitAll, cliente, restaurante) en la API RESTful, ajustando la configuración hasta lograr el funcionamiento esperado.
Puedes crear tu propio usuario o probar con uno de estos
Usuario Cliente: usuario1@example.com Contraseña: password1
Usuario Restaurante: dueno1@example.com Contraseña: password3
El back está alojado en la capa gratuita de render.com, ten paciencia y espera 1-2 minutos a que se haga el login
App JAVA para gestión de tienda o almacén
Java - Spring Boot - Angular - Typescript - HTML - CSS - PostgreSQL - JWT - Docker
Para loguearte utiliza el siguiente usuario: user y el siguiente password: user123 (tarda alrededor de 1 minuto en levantarse el back alojado en la capa gratuita de render.com)
Puedes clickar en las imágenes para ampliarlas
Descubre los puntos clave al pasar el ratón sobre los iconos
En la appicación, los gráficos dan más info al pasar el ratón sobre ellos
Gráficos con información detallada acerca de los productores
1 of 15Gráficos con información detallada acerca de los productos
2 of 15Solo podrá acceder a la app alguien con permisos
3 of 15Puedes acceder al listado de productores y de productos organizados por categorías y niveles de color
4 of 15Productores y número de productos por productor
5 of 15Stock por cada uno de los productores
6 of 15Procedencia de los productores
7 of 15Porcentaje de cada producto sobre el stock de cada productor
8 of 15Numero de productos por cada productor
9 of 15Stock por cada uno de los productos
10 of 15Rangos de precios de todos los productos
11 of 15Estados del total de productos: activo o inactivo
12 of 15Estados del total del stock: activo o inactivo
13 of 15Alta de productos por meses
14 of 15Precios de los productos agrupados por categoría
15 of 15
Posibilidad de añadir un nuevo producto o productor
1 of 4 End TourPosibilidad de editar o eliminar cualquier producto o productor
2 of 4 End TourLos productos están agrupados por categoría y orden alfabético dentro de ellas
3 of 4 End TourLas categorías se separan visualmente por niveles de color
4 of 4 End TourRETOS Y APRENDIZAJES
Es una aplicación que inicié durante el Bootcamp Full stack del Campus Dual del Cluster Tic Galicia, al que he añadido las siguientes mejoras por mi cuenta una vez finalizado
-
Migración a Postgre SQL
Inicialmente, la aplicación utilizaba HSQLDB en local, lo que limitaba la escalabilidad y accesibilidad de los datos. Llevé la base de datos a PostgreSQL en Supabase, aprendiendo a configurar conexiones remotas seguras y a optimizar consultas.
-
Conexión producto-productor
Diseñé nuevas relaciones entre tablas para vincular productos con contactos/productores, asociando cada producto con un productor y simulando un entorno de gestión real, y ofreciendo una visión más completa de los datos. Además, desarrollé nuevos endpoints en Spring Boot y actualicé el frontend en Angular para manejar estas relaciones.
-
Visualización de datos ampliado
Creé un conjunto de gráficos para mostrar visualmente información relacionada con los contactos/productores, equilibrando así la funcionalidad con la parte destinada a la gestión de productos, ya que solo se mostraba información referente al stock de estos. Expandir las capacidades de visualización, creando nuevas gráficas, me ayudó a familiarizarme con el uso de librerías de gráficos en Angular de forma eficiente.
-
Despliegue con Docker en Render
Desplegué el backend en Render.com, un entorno accesible desde cualquier lugar, garantizando estabilidad y continuidad del servicio. Utilicé Docker para contenerizar la aplicación para el despliegue. Esto incluyó la configuración de variables de entorno y la gestión de imágenes Docker para integrar PostgreSQL con la aplicación Spring Boot.
-
Capa de autenticación con JWT
Añadi una capa de control de acceso, pensando el que solo un propietario pudiera acceder a la aplicación. Implementé un sistema de login basado en JWT, integrando una nueva tabla users en la base de datos para gestionar credenciales. Esto me permitió mejorar la seguridad y garantizar que solo usuarios autorizados interactuaran con la app.
El back está alojado en la capa gratuita de render.com, ten paciencia y espera 1-2 minutos a que se haga el login
NFT Interactivo para networking laboral
React - Typescript - Solidity - Foundry - Tailwind - Rainbowkit - Ethers.js - IPFS
Este prototipo funcional nació de una iniciativa de innovación interna en Wave-labs.tech. Fruto del debate en equipo sobre la ineficiencia de las tarjetas de visita, desarrollé la solución técnica para materializar el concepto: una red de networking segura y descentralizada que utiliza NFTs actualizables.
Permite a los usuarios conectar sus perfiles a través de un Token no fungible interactivo, facilitando el intercambio de información privada (como email o teléfono) solo con contactos autorizados.
Posteriormente, adaptamos la idea central a la blockchain de ICP, resultando finalistas en un hackathon internacional.
Mi Pivote Estratégico: De Blockchain a Especialista Java
Comencé mi reconversión con un foco profundo en Blockchain, pensando que, como tecnología novedosa, crecería y me daría más oportunidades.
Invertí cientos de horas en práctica y estudio y trabajé 7 meses en una startup (Wave-labs.tech) para construir productos monetizables.
Competí en hackathons internacionales para mejorar mis capacidades y aumentar mi experiencia en equipo y bajo presión, haciéndolo con brillantez (como demuestran estos premios).
Comprendí que Blockchain se quedó simplemente en un nicho, pero que el 90% de lo que había aprendido era 100% extrapolable.
Todos esos meses codificando me hicieron crecer y me dieron una gran experiencia full stack, desarrollando interfaces con React y Javascrit/TypeScript y aplicando conceptos de POO en el back.
Me dieron dominio de un lenguaje muy similar a Java (Solidity), además de conceptos de seguridad, optimización, testing o lógica de negocio.
Decidí pivotar: aplicar todo ese esfuerzo enorme y esa base técnica para profundizar en el stack más robusto y demandado por la industria:
Java y Spring Boot.
Puedes ver otros proyectos en los que he trabajado para lograr soltura, autonomía y fortalecer fundamentos
El código como medio de expresión
para plasmar ideas en realidad, hacer que las cosas funcionen del modo más atractivo posible.
La precisión como meta,
para hacer que cada cosa funcione como debe hacerlo en el momento en que debe hacerlo.
EL aprendizaje como motor
para lograr mejorar constantemente, superar los límites y alcanzar nuevas metas.





















