🟢 Disponible · incorporación inmediata — Full Stack, Backend Java o Frontend React
📍 Alicante · Elche · remoto · Español nativo · Inglés B2
Desarrollador Full Stack junior (DAM, 2026). Me ocupo de todas las capas: modelo de datos, API, frontend, tests y despliegue.
En Grupo Enercoop diseñé y construí desde cero un gestor de turnos en tiempo real que hoy está en producción. Por mi cuenta mantengo GymProFit (API Spring Boot + app Android + panel React) y GymProBot, un bot de Discord que se prueba y se despliega solo en mi propio servidor Linux.
EN: Junior full-stack developer who builds, tests and ships — from the database to deployment.
- Lógica en PostgreSQL: asignación automática de turnos por prioridad y seguridad por roles con RLS.
- Supabase autoalojado en Docker (13 contenedores) detrás de nginx, con CI/CD en GitLab y 139 tests automatizados con Vitest.
- Agente en Python para los puestos de atención y el kiosko, integrado con escáner e impresora térmica.
Prácticas FCT (400 h, mar–jun 2026) y después contrato temporal (jun–jul 2026) para desplegarlo. Sistema interno de la empresa: sin enlace ni capturas.
- Spring Security con JWT, refresh token rotado y permisos por rol (
ADMIN,USER,GUEST). - Audité mi propia API: encontré y cerré varias vulnerabilidades IDOR y una escalada de privilegios, y cubrí con tests de acceso ajeno las rutas con id.
- CI en GitHub Actions para la API (contra una MariaDB efímera), la app Android y el panel web; las actualizaciones de Dependabot solo se fusionan con el CI en verde.
- API desplegada primero en AWS EC2 y después en Render, con dominio propio (
api.gymprofit.app); el panel vive enadmin.gymprofit.app, detrás de Cloudflare Access.
Ver el repositorio de GymProFit →
- Sin framework: arquitectura por capas propia sobre JDA, sin Spring (comandos, servicios, cliente de API, repositorios JDBC, jobs e i18n ES/EN).
- Despliegue continuo: cada push a
mainpasa build y tests (JUnit 5, Mockito y Testcontainers con MySQL real); solo si el CI está en verde, un runner self-hosted construye la imagen Docker y la despliega en mi homelab, con aviso por ntfy. - Cliente de la API de GymProFit con Retrofit: JWT con renovación ante 401, caché y reintentos con backoff.
- RGPD por diseño: texto libre cifrado con AES-256-GCM, exportación y borrado de datos y retención automática. 39 migraciones Flyway sobre 38 tablas.
Ver el repositorio de GymProBot →
- Homelab — Portátil reutilizado con Ubuntu Server 24.04 y Docker Compose: 14 stacks, Traefik v3 con TLS wildcard, Prometheus + Grafana, Uptime Kuma + ntfy, backups 3-2-1 (restic + Backblaze B2) y ningún puerto abierto al exterior (Cloudflare Tunnel + Tailscale). Aquí vive GymProBot.
- Desde octubre de 2026 curso la Especialización en Inteligencia Artificial y Big Data (IES Severo Ochoa, Elche · 600 h · lunes, miércoles y viernes de 17 a 21 h).
- Preparación por mi cuenta en Python, pandas, MongoDB y AWS: iabd-prep.
| Título | Centro | Años |
|---|---|---|
| CFGS Desarrollo de Aplicaciones Multiplataforma (DAM) | IES Macià Abela, Crevillente | 2024–2026 |
| CFGM Sistemas Microinformáticos y Redes (SMR) | IES Macià Abela, Crevillente | 2022–2024 |
¿Tienes un puesto Full Stack, Backend Java o Frontend React en Alicante, Elche o en remoto? Escríbeme a rubenjuancandela06@gmail.com o por LinkedIn.
