Salvador PérezFull-Stack Developer

@bpstack

Desarrollo y despliego aplicaciones full-stack. Desde la base de datos hasta producción. Actualmente trabajando en sistemas de gestión hotelera.

TypeScriptReactNode.jsExpressMySQLMongoDB
Sígueme en
02 — Proyectos

Proyectos

Algunos de mis proyectos recientes

HotelCode

En Progreso

PMS hotelero full-stack en un monorepo pnpm — frontend Next.js 14 (App Router, server components) y una API Express 5 + TypeScript (ES modules, tsx sin paso de build, Vitest). Su pieza central es el motor de planificación de turnos: el problema de asignación mensual de turnos se modela como constraint programming y se resuelve con Google OR-Tools (CP-SAT) en un daemon Python persistente. Node lo controla mediante JSON line-delimited a través de un cliente con máquina de estados, semáforo single-flight (CP-SAT no es thread-safe) y respawn transparente. Las restricciones duras (cobertura, rotación de bloques de noche, transiciones prohibidas, ventanas de descanso consecutivo, libres mensuales, celdas bloqueadas) se combinan con una función objetivo blanda ponderada (balance de noches, descansos aislados, prioridad de turno, bloques cortos); la continuidad entre meses se modela con días virtuales, y un analizador heurístico de infactibilidad devuelve las restricciones en conflicto y las relajaciones sugeridas. La lógica del solver se ancla a un validador TypeScript independiente mediante una suite de tests de paridad.

El resto del sistema abarca checklists operativos diarios (contenido definido en JSON sincronizado, reset diario por cron con auto-cierre perezoso), un parser de PDFs de Opera PMS que ingiere los ingresos diarios de F&B en un pivot SQL, ciclo completo de reservas de parking, caja multi-turno con exportación PDF, seguimiento de grupos, un flujo de mantenimiento con estados y un libro de registro auditado. Autenticación JWT en cookies HttpOnly (access + refresh), MySQL 8 con 40+ tablas y migraciones idempotentes, Cloudinary para imágenes/PDFs, tareas en segundo plano por cron, desplegado en Render (API) / Aiven (MySQL) / Vercel (frontend).

Weather App

Completado

App en producción construida con Next.js 16 y React 19 con datos meteorológicos completos de Open-Meteo API. Geolocalización automática inteligente con geocodificación inversa, arquitectura offline-first mediante service workers Serwist y validación de API segura con esquemas Zod. Navega por 28 ciudades preseleccionadas en 6 continentes o busca en todo el mundo, consulta condiciones actuales con más de 28 interpretaciones de códigos meteorológicos WMO, pronósticos de 7-16 días y predicciones por hora. Instalable en iOS, Android y escritorio con actualizaciones automáticas y notificaciones al usuario. Incluye alertas de lluvia/calor, cambio °C/°F, filtrado por continente, cambio de tema y caché StaleWhileRevalidate para rendimiento óptimo. Monitorizado con Vercel Analytics y Speed Insights.

Matrix

En Progreso

Aplicación de escritorio (Linux, macOS, Windows) todo-en-uno para desarrolladores, para organizar ideas, proyectos, planificación, roadmaps, tareas y métricas de desarrollo. Construida con Electron Forge + Vite como app de escritorio con backend Express embebido. Incluye jerarquía Misión → Objetivos → Planes → Tareas con cálculo de progreso en cascada, tablero Kanban de tareas con drag-and-drop, pipeline de Ideas con puntuación (alineación/impacto/costo/riesgo), escáner de proyectos para detección de roadmap/tareas en proyectos locales, gestor de contraseñas cifrada con AES-256-GCM, registro de actividad, dashboard de análisis con gráficos (Recharts), base de datos SQLite con Drizzle ORM, y soporte bilingüe (EN/ES).

En Progreso

Versión web de producción de la app de escritorio Matrix, desarrollada para la Hackaton CubePath 2026 organizada por Midudev — seleccionada entre los 10 mejores proyectos de casi 250 presentados — y desplegada en un VPS de CubePath via Dokploy. Multi-usuario con SQLite aislada por usuario, autenticación scrypt + tokens HMAC en cookies httpOnly, rate limiting global y por endpoint, recuperación de contraseña por email y headers de seguridad completos (HSTS, CSP, X-Frame-Options). PWA instalable, integración GitHub API, Dev Feed, Pomodoro y notas diarias. CI/CD con GitHub Actions + auto-deploy via Dokploy. Demo en matrix.stackbp.es (demo / demo1234).

Portal informativo de Matrix App construido con Astro SSG y desplegado en Vercel. Presenta los 6 módulos del sistema, blog técnico sobre productividad para programadores independientes, foro de comunidad con Firebase, precios y formulario de contacto.

Home Account

En Progreso

Aplicación de gestión financiera doméstica totalmente cifrada. El backend nunca ve datos en claro: todas las transacciones, categorías y presupuestos se cifran client-side con AES-256-GCM y se almacenan como blobs. Derivación de claves con Argon2id (memory-hard), encriptación con claves jerárquicas (UserKey → AccountKey → Datos), y recuperación mediante frase mnemónica BIP39 de 24 palabras. Sistema de invitaciones multicuenta con transferencia segura de claves, módulo de asesoramiento de inversión con IA (Groq/Ollama/Claude/Gemini/HuggingFace), importación masiva Excel/CSV con deduplicación, presupuestos, gráficos interactivos con Recharts, autenticación JWT + OAuth (Google/GitHub), protección XSS/CSRF, rate limiting y PWA instalable. Backend en sleeping Render, DB en Aiven, frontend en Vercel.

E-commerce

En Progreso

Una plataforma de comercio electrónico moderna que evolucionó de un prototipo en vanilla JS a una arquitectura escalable con Next.js + Strapi. La versión legacy sentó las bases para conceptos fundamentales como manejo del DOM y lógica del carrito, mientras que el nuevo stack ofrece mejor rendimiento, mantenibilidad y escalabilidad en progreso. Esto podría ser infinito. Ve a la sección del blog si quieres saber más. Info de despliegue: base de datos (Aiven), backend (Render — la primera carga puede activar un cold start de algunos minutos), frontend (Vercel).

AMPA MP Website

Completado

Sitio web informativo para la Asociación de Madres y Padres del CEIP Mariana Pineda. Incluye gestión de contenido, registro de socios, actualizaciones de comunicación, publicación de noticias, acceso a documentación y estructura optimizada para SEO. Construido y configurado desde cero con personalización del tema, configuración de plugins y optimización general del rendimiento.

03 — whoAmI()

Desarrollador autodidacta al que le encanta construir cosas. ¿Mi camino de aprendizaje? Googlear mensajes de error sin parar, profundizar hasta encontrar la solución exacta a un problema técnico, incontables tutoriales de YouTube - resolviendo problemas a la antigua & en solitario desde mi primer PC en 1997. Estuve en IRC antes de que Discord existiera — donde nacieron muchos proyectos de software, como Linux y Ubuntu.

He pasado años creando herramientas para la industria hotelera y contactos cercanos. He diseñado sistemas de gestión hotelera, dashboards para asociaciones escolares (ser padre enseña; las oportunidades de desarrollar aparecen en cualquier ámbito), y automatizaciones de flujos de trabajo personalizadas para amigos.

Hoy, construyo aplicaciones full-stack desde cero: plataformas de gestión hotelera end-to-end, bases de datos, aplicaciones web, y sitios de e-commerce—backend, frontend, y todo lo demás. Actualmente construyendo HotelCode—un sistema integral de gestión hotelera.

Construido
  • Sistemas PMS hoteleros
  • Herramientas internas
  • Apps web AMPA
  • Plataforma E-commerce
Stack
Next.jsTypeScriptNode.jsMySQL

+ lo que funcione

git fetch --all
git branch -a
git checkout develop
git status # If changes → stash
git stash # JIC (only if needed)
git pull origin develop
git stash pop # If you stashed
process.env.PHILOSOPHY

Deja que la IA maneje la parte aburrida, pruébala, borra lo inútil — construye cosas que la gente realmente use.

04 — Skills y Tecnologías

Skills y Tecnologías

Tecnologías con las que trabajo

Stack Actual

React / Next.js
TypeScript
Node.js / Express
MySQL
Tailwind CSS
Docker
06 — Contacto

Contacto

Información de Contacto
$ response_time
Normalmente respondo en 24-48h
1000 caracteres restantes
bpstack - Full Stack Developer