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 que me preparan para adaptarme a cualquier entorno de trabajo profesional.
.
Java - Javascript - Typescript - HTML - CSS - SQL - React - Angular - Spring boot - Solidity - Foundry
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.
Hackathon achievements
Primer Premio con Medic+ al mejor workflow smart contract/test en la Hachathon 2024 de Educateth(Smart contract y test desarrollados por mi)
Tercer puesto con Wave-Labs.tech en la Bankathon 2024 de Tower Bank con un exchange peer to peer mediante escrow
Finalista con Wave-Labs.tech en la Bitcoin Virtual Hackathon 2004 con ICP
Bitcoin Virtual Hackathon 2004
Algunos de mis proyectos
Foody Market
Java - Spring Boot - Typescript - React - HTML - Tailwind - PostgreSQL
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 Dueño: dueno1@example.com Contraseña: password3
El back alojado en la capa gratuita de render.com, por lo que tarda algo más de 1 minuto en levantarse.
Work wander
Java - Spring Boot - Ontimize - Typescript - Angular - HTML - SCSS - PostgreSQL
Video resumen de la mayoría de las funcionalidades
Puedes clickar en las imágenes para ampliarlas y ver detalles y funcionalidades
Descubre algunos puntos clave de Work Wander viendo la explicación

Mapa de posición del coworking con puntero ajustable.
1 of 5 End TourReseñas proporcionadas por los usuarios
2 of 5 End TourValoraciones de la calidad del coworking
3 of 5 End TourEventos que se celebran en la misma localidad del coworking
4 of 5 End TourInformación general, como precio, servicios, capacidad, etc
5 of 5 End TourRETOS Y APRENDIZAJES
Una aplicación compleja
Hemos superado desafíos técnicos como llamadas complejas a base de datos, aplicar filtros combinados, lidiar con formatos de fechas, mostrar mapas de ubicación, implementación de graficas de datos o calendarios, manejar paginación o caché, combinar funcionalidades para mejora de experiencia de usuario, etc.
Además, hemos desarrollado nuestras habilidades blandas practicando el trabajo en equipo, la comunicación y colaboración entre nosotros, manejando conflictos a la hora de mergear ramas en Github o crear y pesar historias de usuario con Jira o Scrum poker. Hemos participado en dailys, retrospectivas y otras ceremonias de scrum. Ha sido un valioso entrenamiento para trabajar en un entorno laboral real.
Puedes probar la app con los usuarios
Usuario: Diego Contraseña: 123456789
Usuario: company Contraseña: democompany
Money Bank Escrow
Solidity - Foundry - React - Typescript - HTML - CSS - Wagmi - Viem - RainbowKit
Exchange que permite el intercambio ETH - USDT (simulados) entre particulares.
Es un prototipo de contrato inteligente y UI/UX desarrollado en Wavelabs.tech, en el que asumí la responsabilidad técnica, premiado con el 3er puesto en el hackathon internacional Towerbank Bankathon 2024.
Esta versión es una personalización del prototipo original, con varias mejoras visuales y de usabilidad.
Los activos se depositan en un escrow que se libera únicamente cuando un segundo usuario lo acepta, eliminando problemas de sincronización o conflictos en interacciones simultáneas.
Las ofertas de intercambio se pueden hacer de Eth a Usdt (simulados) y de Usdt a Eth.
Necesitarás una wallet en la red Sepolia para poder interactuar con la aplicación.
Puedes clickar en las imágenes para ampliarlas y ver su funcionamiento
Descubre los puntos clave de la Dapp viendo las explicaciónes

EL balance del usuario en Ether
1 of 7 End TourSe gestiona aquí la conexión y desconexión de la wallet del usuario.
2 of 7 End TourEl balance del usuario en Usdt
3 of 7 End TourLas ofertas que se hacen de Ether a cambio de Usdt
4 of 7 End TourLas ofertas que se hacen de Usdt a cambio de Ether
5 of 7 End TourValor de intercambio de 1 Ether y 1 Usdt a Dólares
6 of 7 End TourValor de intercambio de 1 Ether en Usdt y de 1 Usdt en Ether
7 of 7 End Tour
Se muestra el valor actual de 1 Ether y de 1 Usdt en dólares
1 of 5 End TourSe muestra el valor actual de 1 Ether en Usdt y de un Usdt en Ether
2 of 5 End TourSe muestra el valor actual de Ether en Usdt, y viceversa, para la cantidad que indique el usuario
3 of 5 End TourSe muestra el balance del usuario en la moneda seleccionada para la creación de la oferta
4 of 5 End TourPermite seleccionar en que moneda se creará la oferta
5 of 5 End TourRETOS Y APRENDIZAJES
-
Escrows
La dapp implementa un sistema de escrows, mediante el cual al crearse la oferta se está aprobando y enviando al contrato la cantidad ofertada, que se mantiene bloqueada hasta que es cancelada o aceptada por otro usuario.
-
Lógica de aceptación
He creado una lógica para la evitar la concurrencia en las transacciones, ya que al aceptarse la oferta se envía la cantidad del intercambio al ofertante y se recibe el importe de la oferta en la misma transacción, evitando que se pueda interactuar simultáneamente con la misma oferta, evitando inconsistencias o comportamientos no deseados.
-
Uso de API externa
Integra la API de CoinGecko para obtener valores actualizados de intercambio, para lograr que la información mostrada al usuario sea precisa y actualizada, mejorando la experiencia del usuario.
-
RainbowKit
Me he decantado por el uso de Wagmi y RainbowKit para manejar la conexión con la wallet del usuario, para proporcionar una experiencia más fluida en la conexión/desconexión y con mayor flexibilidad al permitir conectarse con una amplia variedad de wallets.
-
Transferencia de tokens
Para facilitar las pruebas y la experiencia de usuario, la aplicación incluye una funcionalidad que permite a los usuarios obtener tokens USDT de prueba directamente desde el contrato. Si no se posee balance de dicho token se muestra un botón en la interfaz que, al ser presionado, interactúa con el contrato para enviar 100 tokens a la wallet conectada del usuario. Esto permite probar las funcionalidades de la dApp si se dispone de ether nativo en la red Sepolia.
-
Firma de transacciones
Se implementa un sistema de firma de transacciones para mejorar la seguridad y autenticidad. Utiliza la función signMessage para firmar un mensaje compuesto por los detalles críticos de la transacción y un nonce único. La firma resultante se verifica en el contrato inteligente antes de ejecutar la transacción, lo que garantiza que solo el propietario de la wallet pueda autorizar las operaciones y previene las manipulaciones.
-
Seguridad
He prestado especial atención al diseño del contrato inteligente, usando siempre el patrón Checks-Effects-Interactions para evitar vulnerabilidades y problemas de concurrencia en las transacciones. Implementé lógica clara y robusta para gestionar estados en el escrow y asegurar transacciones seguras.
Alguien sabio me dijo una vez que la claridad te da velocidad.
Fue esa claridad la que me trajo hasta el código.
El código es para mi otro medio de expresión;
la precisión, la meta que define un trabajo bien hecho;
y el aprendizaje constante, el único motor que lo sostiene todo.
Y, una vez he alcanzado la madurez profesional, puedo al fin liberar mi máximo potencial.