¡Hola! 👋 Soy Alfredo Sobrados, apasionado por la programación, la tecnología y el desarrollo de software. Esto es una recopilación de proyectos y prácticas académicas y extraacadémicas que reflejan mi progreso, aprendizajes y habilidades en diversas tecnologías. 🚀
Descripción: Aplicación móvil multiplataforma para la gestión integral de un centro deportivo, desarrollada durante mis prácticas en Fransdata Tech Ventures en un equipo de tres desarrolladores. Incluye autenticación segura con JWT, gestión avanzada de perfiles con fotos, sistema de entrenadores y favoritos, y un diseño moderno con Material Design 3.
Tecnologías: Kotlin Multiplatform Mobile (KMM), Jetpack Compose, Swift/SwiftUI, Ktor Client, Node.js, Express.js y MariaDB.
Objetivo: Desarrollar e implementar funcionalidades completas en una app real en producción, optimizando la arquitectura con Clean Architecture y principios hexagonales, reutilizando un 80% del código entre Android e iOS.
Características destacadas:
- Funcionalidades principales: Registro y login seguro con JWT + refresh tokens, persistencia cifrada de datos, gestión de perfiles con carga/edición de imagen, selección de entrenador/profesional del deporte favorito, interfaz responsive y accesible con tema oscuro.
- Qué aprendí: Implementar Clean Architecture con principios hexagonales en un entorno multiplataforma, desarrollar APIs REST seguras en Node.js, optimizar flujo de datos unidireccional y coordinar trabajo en equipo en un proyecto real en producción.
Descripción: Landing page profesional para empresa de ingeniería geotécnica con sistema completo de generación de leads. La página presenta servicios (estudios geotécnicos, sondeos, ensayos) y cuenta con un formulario de contacto que activa un flujo automatizado de notificaciones por email y almacenamiento de datos.
Tecnologías: React 18, TypeScript, Vite, Tailwind CSS, shadcn/ui, Zod, React Hook Form, Vercel (hosting + serverless functions), Supabase (PostgreSQL), Resend (emails), Google reCAPTCHA v3.
Características destacadas:
- Arquitectura Jamstack con frontend estático y backend serverless completamente separados
- Sistema anti-spam multicapa con reCAPTCHA v3 invisible + campo honeypot oculto
- Validación consistente usando esquemas Zod compartidos entre cliente y servidor
- Flujo automatizado completo: validación → verificación captcha → almacenamiento BD → envío de emails (notificación + confirmación)
- Optimización de rendimiento con lazy loading de imágenes, code splitting y CDN de Vercel
- Manejo robusto de errores con feedback inmediato al usuario y logging detallado
- Escalabilidad automática gracias a funciones serverless y servicios cloud gestionados
API REST documentada: Endpoint POST /api/contact con validación de entrada, verificación reCAPTCHA, persistencia en Supabase y envío de correos transaccionales. Incluye pruebas unitarias completas con Vitest.
Implementé: Integración completa de servicios externos, validación de formularios robusta, arquitectura serverless escalable, y sistema de notificaciones automáticas end-to-end.
Descripción: Finanzas Personales es una aplicación Android, diseñada para facilitar la gestión de tus finanzas personales. Implementa la arquitectura MVVM (Model-View-ViewModel) junto con el patrón Repository para garantizar un diseño modular, escalable y fácilmente mantenible. Esta app es mi Práctica Final de Plataformas de Software Móviles.
Tecnologías: Kotlin, Jetpack Compose, Material Design 3, Gradle KTS y Android Studio.
Puntos clave:
- Esta app resuelve el problema de unas finanzas personales mal gestionadas.
- Principales funcionalidades: Ver, Añadir, Editar y Eliminar tanto transacciones de gasto o ingreso como presupuestos asignados a un mes, año y categoría concreta. Estadísticas para visualizar nuestras finanzas y una página principal que nos da un saldo, ingresos y gastos totales.
Descripción:
HotelManagementAPI es una API RESTful diseñada para gestionar un hotel, permitiendo la administración de clientes, habitaciones, reservas, pagos y administradores. Implementa autenticación con JWT y sigue una arquitectura limpia para separar la lógica de negocio, la infraestructura y los adaptadores.
Motivación:
Este proyecto nació como un ejercicio de la comunidad Skool DeHaroHub. Aunque la comunidad ya no está activa, decidí desarrollarlo y publicarlo por mi cuenta como una oportunidad para mejorar mis habilidades en el diseño de APIs RESTful, el manejo de bases de datos con JDBC y la aplicación de buenas prácticas en arquitectura de software.
Tecnologías:
- Lenguaje y Framework: Java 21+ con Spring Boot
- Seguridad: Spring Security con JWT
- Base de Datos: MariaDB en Docker
- Persistencia: JDBC (sin ORM)
- Contenedores: Docker para la base de datos y Adminer
- Documentación: Swagger/OpenAPI
- Pruebas: JUnit5, Mockito, Testcontainers y Postman
- Herramientas de construcción: Gradle
Características destacadas:
- CRUD completo para clientes, habitaciones, reservas, pagos y administradores.
- Implementación de autenticación y autorización con JWT.
- Uso de JDBC en lugar de ORM para mayor control sobre las consultas SQL.
- Arquitectura limpia y modular basada en principios hexagonales.
- Configuración con Docker para facilitar la instalación y ejecución.
- Documentación interactiva con Swagger/OpenAPI.
- Pruebas unitarias y de integración para garantizar la estabilidad del sistema.
¿Qué aprendí con este proyecto?
- Profundicé en la arquitectura hexagonal y su aplicación en APIs REST.
- Mejoré el manejo de bases de datos sin ORM utilizando JDBC.
- Implementé autenticación segura con JWT en Spring Boot.
- Aprendí a optimizar la estructura del código para mejorar la mantenibilidad y escalabilidad.
Descripción: Este proyecto implementa un sistema de gestión para un Centro de Convenciones utilizando los principios de la Programación Orientada a Objetos (POO) y varios patrones de diseño. Proporciona funcionalidades para gestionar espacios, reservas, productos y aspectos económicos del centro.
Objetivo: En esta práctica aprendí los pilares de la programación orientada a objetos (herencia, polimorfismo y encapsulación) e implemente varios patrones de diseño.
Herramientas: Java y el IDE NetBeans.
Descripción: La aplicación web permite a los profesores de Tecnologías Web notificar avisos a sus alumnos.
Tecnologías: HTML, CSS, PHP, JavaScript, jQuery y un entorno virtual LAMP (Linux, Apache, MySQL y PHP).
Objetivo: Aprender a desarrollar una aplicación web básica y a prepar el entorno virtual de desarrollo.
Descripción: Ejercicios y ejemplos prácticos de estructuras de datos en Java.
Objetivo: Fortalecer habilidades en lógica y resolución de problemas.
Temas cubiertos:
- Listas enlazadas, pilas, colas, árboles binarios, etc.
Descripción: Ejercicios prácticos para entender conceptos fundamentales de los Sistemas Distribuidos.
Objetivo: Aprender algunos fundamentos prácticos básicos como la ejecución concurrente de hilos o el paso de mensajes de manera bidireccional entre cliente y servidor.
Temas cubiertos:
- Implementación de tareas concurrentes utilizando la clase
Threadde Java. - Uso de la interfaz
Runnablepara manejar tareas concurrentes. - Implementación de un servidor y cliente de Web Sockets en Java.
Descripción: Este práctica final es una replica del mítico juego Arkanoid desarrollado en Java.
Tecnologías: Java, Swing Java y AWT GUI
Objetivo: Aprender a desarrollar una aplicación de escritorio visual en Java para entender y aplicar el diseño de interfaces de usuario de manera práctica.
Soy un desarrollador en constante aprendizaje, con interés en desarrollo de aplicaciones web y móviles, inteligencia artificial, ciberseguridad y tecnología blockchain. En este portafolio encontrarás desde prácticas básicas hasta proyectos más avanzados, reflejando mi evolución en este duro pero bonito camino.
- 💼 LinkedIn: Mi Perfil de LinkedIn
- 📧 Contacto: Mi correo electrónico
¡Gracias por visitar mi portafolio! 😊

