Versión para leer
Todo el portafolio
Los diez casos y el resto del portafolio. Todo el contenido se puede leer sin recorrer el mundo 3D.
Proyectos
01Galería MidasApp para los repartidores de Midas
Convertí el plano de papel de la Galería Nicolini en una app para el equipo de reparto de Midas. Permite encontrar un local, consultar quién recibe el pedido y seguir una ruta por los pasajes, incluso sin señal.
Ver el caso con sus imágenesMi papel
Identifiqué el problema durante mi trabajo en logística, transcribí el plano y desarrollé la aplicación. Contrasté los datos con las fotografías del documento original.
Equipo
Proyecto personal, hecho para el equipo de reparto
Estado
Publicada en Vercel · los datos viven en cada celular
2026
Alcance
Los clientes que se ven son de prueba. Los reales no se publican: cada repartidor los guarda en su celular.
El papel
La Galería Nicolini tiene más de mil locales y el único plano era una hoja de papel a punto de deshacerse. Después del incendio, encima, se entraba por otro pasaje.
De dónde salió
Trabajaba en logística en Midas, y buena parte de los pedidos iban a la Galería Nicolini. Cada entrega empezaba igual: buscar el código del local en el papel, preguntar, dar vueltas.
A partir de cuatro fotos del plano lo transcribí fila por fila. El plano de la app no es un dibujo: son datos, así que se puede buscar, comprobar y trazar rutas sobre él.
En el celular
El plano
- 1164 · códigos de local legibles en el papel
- 4 · fotos del plano original
- 0 · dependencias: ni frameworks ni CDN
- 13 · pruebas del plano, rutas, almacenamiento y datos de ejemplo
En la oficina
Decisiones de diseño
- El plano como datos: Transcribir el papel por filas y anchos en vez de dibujarlo deja comprobar con pruebas que nada se superpone y que cada ruta pasa por un pasaje.
- No inventar: Un código que no se lee en el papel queda como «?». Las distancias van sin escala métrica. La zona que no se pudo leer está marcada «por cotejar» y no tiene rutas.
- Funciona sin señal: Dentro de la galería la señal va y viene. Todo está en el celular y se instala como una app.
- Personas, no solo locales: Lo que más tiempo hace perder no es encontrar el local: es saber quién puede recibir y si hay que cobrar.
Tecnología y herramientas
- Lenguajes: JavaScript, HTML, CSS, SVG · Sin frameworks ni dependencias: funciona sin internet y se publica como archivos estáticos.
- Plataforma web: Service Worker, Web App Manifest, localStorage · Instalarla en el celular, abrirla dentro de la galería sin señal y guardar clientes y repartos.
- Infraestructura: Vercel, GitHub Actions · La publicación y las 13 pruebas en cada cambio.
- IA: Claude, Codex · Desarrollo asistido. La transcripción del plano y cada decisión las revisé contra el papel.
Límites y siguientes pasos
No sincroniza: lo que guarda un repartidor no aparece en el celular de otro, y se pasa con un respaldo a mano. Fue una decisión para no necesitar servidor ni cuentas, pero se nota.
- El orden de paradas es una sugerencia (el vecino más cercano), no la ruta óptima.
- La primera versión giraba el plano para poner el norte arriba; terminé volviendo a la orientación del papel, que es la que todos conocían.
- No tiene analítica, a propósito: no sé cuántos repartidores la usan.
Lo que aprendí
- Los mejores problemas para resolver son los que veo de cerca en el trabajo.
- Pasar un plano a datos tomó más tiempo que programar la app, y fue lo que la hizo útil.
- Decir «no sé» en la interfaz («por cotejar», «?») genera más confianza que inventar.
02Criaderos Hermanos TorresApp para el criadero de mi familia
Diseñé esta app para mi papá y su criadero. Guarda la genealogía, las camadas, las fotos de crecimiento y las tareas pendientes en su celular. La historia de cada ejemplar sigue disponible aunque no haya internet.
Ver el caso con sus imágenesMi papel
Definí el problema con mi papá, diseñé la interfaz y desarrollé la aplicación con asistencia de IA. Revisé los registros, el árbol familiar y los respaldos mediante pruebas.
Equipo
Proyecto personal
Estado
Hecha para mi papá · funciona sin internet
2026
El cuaderno
En el criadero todo se anotaba en un cuaderno: quién es hijo de quién, qué salió de cada cruza, qué vacuna toca. Una hoja perdida era una historia perdida.
Para quién
Para mi papá, en su celular, a pie de corral y con la señal que haya. No iba a crear una cuenta ni a recordar una contraseña, así que la app no tiene ninguna de las dos: todo se guarda en el teléfono.
- Una sola columna, botones grandes y cuatro secciones abajo.
- Las palabras del oficio: placa, color de placa, cresta, padrillo, madrilla, camada.
- Funciona sin internet y se instala como una app más.
- Se puede hacer zoom con dos dedos: el original lo bloqueaba y lo arreglé.
La app
- Inicio: contadores de vivos, machos y hembras, buscador y los ejemplares en cuadrícula.
- Ficha de un ejemplar con su edad calculada, padre y madre.
- Línea de crecimiento: fotos con la edad que tenía el gallo ese día.
- Registro de una camada: padre, madre y fecha una vez, varias crías a la vez.
- Pendientes: vacunas y fotos de seguimiento con su aviso.
El árbol
Lo que el cuaderno nunca pudo hacer. Como el padre ya no es un texto sino un vínculo a otro registro, la app arma el árbol sola: recorre la familia hacia arriba y hacia abajo, la ordena por generaciones y acomoda cada fila para que las líneas se crucen lo menos posible.
De la libreta a la app
- Un prototipo en Claude · 20 jun 2026 · Un formulario en React con cuatro pestañas. El árbol eran cajas para escribir a los abuelos a mano.
- Una plantilla para imprimir · 20 jun 2026 · El mismo cuaderno en A4, con líneas en blanco, por si la app no convencía.
- La app, desde cero · 19–23 jul 2026 · Sin frameworks. El cambio de fondo: el padre deja de ser un texto y pasa a ser un vínculo, y con eso salen el árbol, la descendencia y las edades.
- Revisión y GitHub · oct 2026 · Una prueba de punta a punta, nueve correcciones y el código publicado en GitHub.
Decisiones de diseño
- Sin servidor y sin cuentas: Todo vive en IndexedDB, en el teléfono. Cero costo y cero datos de la familia en internet.
- Primero sin señal: El service worker trae la versión nueva cuando hay red y usa la guardada cuando no. Las actualizaciones llegan solas, sin pedirle a nadie que borre nada.
- Fotos livianas: Se reducen en el propio celular a 900 px y JPEG al 72 %: una foto típica queda en unos 10 KB y el respaldo lo lleva todo.
- El respaldo como plan B: Si los datos solo existen en un teléfono, el respaldo es la única salida: un archivo con fecha que se manda por WhatsApp.
- Que el árbol no mienta: Placa única, nadie puede ser su propio padre ni elegir a un descendiente como padre, y no se borra un gallo que tiene crías.
Tecnología y herramientas
- Lenguajes: HTML, CSS, JavaScript · Sin frameworks ni build: lo que está en la carpeta es lo que se sirve.
- Plataforma web: IndexedDB, Service Worker, Web App Manifest, Web Share API, Canvas · Guardar en el teléfono, abrir sin señal, instalarla como app, mandar el respaldo por WhatsApp y comprimir fotos.
- Infraestructura: Netlify · Netlify Drop para tener un enlace HTTPS e instalarla en su celular.
- IA: Claude · El primer prototipo fue un artefacto de Claude; después, desarrollo y pruebas asistidos.
La revisión
La revisé en octubre de 2026 con ayuda de IA para escribir la prueba; cada corrección está en su propio commit.
- 15/28 → 30/30 · comprobaciones de la prueba de punta a punta
- 2,4 MB → 187 KB · lo que pesaban las ilustraciones
- ≈10 KB · una foto típica, ya comprimida
- ~2850 · líneas propias, sin dependencias
Límites y siguientes pasos
La primera versión podía borrarlo todo: «Reemplazar todo» con un respaldo dañado dejaba el celular con cero gallos. No lo vi hasta escribir la prueba. Ahora el borrado y la escritura van en una sola transacción y el archivo se revisa antes de tocar nada.
- Las fechas salían en hora UTC: desde las siete de la noche, una foto se guardaba con la fecha de mañana.
- No sincroniza entre teléfonos: hoy el respaldo se pasa a mano.
- Nunca tuvo dominio propio. Vivió en un enlace temporal de Netlify Drop.
Tres temas
Lo que aprendí
- Diseñar para una persona concreta simplifica todo: cada duda se resolvía preguntando qué haría mi papá en el corral.
- Un modelo de datos bien pensado vale más que diez pantallas: el árbol salió de cambiar un texto por un vínculo.
- Si los datos viven en un solo lugar, el respaldo no es un extra: es la función más importante.
Repositorio
03XoraMarketVentas e inventario para el negocio familiar
Creé un punto de venta para el negocio de mi familia. La misma mercadería puede venderse por caja, plancha o unidad; XoraMarket convierte cada venta al stock real y reúne las cuentas en un solo lugar.
Ver el caso con sus imágenesMi papel
Diseñé el modelo de datos y desarrollé el punto de venta, el inventario y los reportes. Después separé la aplicación en módulos y añadí pruebas con asistencia de IA.
Equipo
Proyecto personal
Estado
Corre en una computadora del negocio · sin publicar en internet
2026
Alcance
Las capturas usan productos y ventas inventados; los datos reales del negocio nunca se subieron al repositorio.
Las facturas
El negocio llevaba todo en facturas de papel. Saber cuánto se ganó en el mes, o si quedaba stock de algo, era sumar a mano.
Vender
La caja, la plancha y la cajetilla
Una caja tiene planchas y una plancha tiene cajetillas, y se vende de las tres formas. Si el stock se guardara por separado, a la tercera venta ya no cuadraría nada.
Por eso todo se guarda en la unidad más chica y se convierte en un solo lugar del código. Vender una caja descuenta cincuenta cajetillas; reponer cuatro cajas suma doscientas.
El inventario
Los números
Lo que antes era sumar facturas: lo vendido y lo ganado hoy, la comparación con ayer, el mes día por día y lo que se está acabando.
Decisiones de diseño
- Una sola unidad de stock: Todo en cajetillas y una sola función que convierte. Antes la conversión estaba repetida en cuatro sitios, con pequeñas diferencias.
- La venta entera o nada: Si una línea no tiene stock, se deshace toda la venta. Nunca queda una venta a medias.
- El costo viaja con la venta: Cada línea guarda lo que costó esa unidad: la ganancia sale de restar, sin recalcular nada después.
- SQLite en una computadora: Un archivo, sin servidor ni mensualidad. Es lo que necesitaba un negocio que venía del papel.
Tecnología y herramientas
- Lenguajes: Python, JavaScript, HTML · El servidor en Python; las pantallas con plantillas y un poco de JavaScript.
- Frameworks: Flask, SQLAlchemy, Bootstrap, Chart.js · Rutas y API, el acceso a datos, la interfaz y los gráficos del panel.
- Datos: SQLite · Una base en un solo archivo, en la computadora del negocio.
- Herramientas: pytest, Git · 57 pruebas de ventas, stock y configuración.
- IA: Claude · La reorganización de septiembre: separar en módulos y escribir las pruebas.
En código
- 57 · pruebas que pasan
- 13 · rutas de API
- 3 · niveles de empaque por producto
- ~2500 · líneas, de un archivo de 595 a módulos separados
Límites y siguientes pasos
No tiene usuarios ni contraseñas: está pensado para una computadora del negocio y no se debe publicar en internet así. Lo dejé escrito en el repositorio para que nadie lo suba tal cual.
- La primera versión era un solo archivo de casi 600 líneas, con scripts sueltos de depuración. Ordenarlo vino meses después.
- Las ventas se guardaban en hora UTC: después de las siete de la noche aparecían en el día siguiente.
- El README decía que estaba en Render, pero no quedó ninguna dirección que lo compruebe: hoy corre en local.
Lo que aprendí
- El problema real casi nunca es el que se ve: aquí no era vender, era que una caja no es una cajetilla.
- Un sistema pequeño que se usa vale más que uno grande en la cabeza.
- Las pruebas llegaron tarde, y fueron lo que me dejó reordenar el código sin miedo.
Repositorio
04TuneDropApp personal para mi música
Una herramienta personal para cuidar mi biblioteca musical. TuneDrop reúne portada, artista, álbum y letra en archivos MP3 que mi reproductor puede reconocer, con los metadatos a la vista antes de guardarlos.
Ver el caso con sus imágenesMi papel
Construí el primer prototipo en un día con un agente de IA en Antigravity. Después revisé la integración con los servicios, corregí errores y publiqué el código.
Equipo
Proyecto personal
Estado
Herramienta personal · ejecución local
2026
Alcance
Para uso personal. Descarga audio de YouTube; el repositorio pide respetar los derechos de autor y los términos de cada servicio.
El problema
Samsung Music enseña lo que trae el archivo. Un MP3 sin portada ni letra se ve con un ícono gris, y arreglar canción por canción con un editor de etiquetas era eterno.
En la computadora
En el celular
Cómo funciona
- Buscar · La búsqueda va a iTunes: título, artista, álbum, año y la portada en 600 × 600.
- La letra · LRCLIB, y si no está, Lyrics.ovh. Se limpian las marcas de tiempo.
- El audio · El servidor encuentra el video y transmite el audio con yt-dlp; no guarda nada.
- En el teléfono · El navegador lo convierte a MP3, recorta la portada y escribe las etiquetas ID3 que lee Samsung Music.
Decisiones de diseño
- Convertir en el navegador: El servidor solo pasa bytes. Decodificar, codificar y etiquetar lo hace el dispositivo, así no hace falta ffmpeg en ningún lado.
- MP3 de verdad: Samsung Music y Windows ignoran las etiquetas ID3 escritas sobre AAC; por eso se transcodifica.
- yt-dlp y no una librería: Probé ytdl-core y otras: se rompían con la detección de bots. yt-dlp es lo único que aguanta.
- Dos descargas a la vez: Un álbum de veinte canciones no puede tumbar el CPU del celular.
Tecnología y herramientas
- Lenguajes: JavaScript · Toda la app, cliente y rutas del servidor.
- Frameworks: Next.js, React, Tailwind CSS · La interfaz, las rutas de API y la PWA instalable.
- Plataforma web: Web Audio API, Canvas, Service Worker · Convertir a MP3 y recortar la portada en el propio celular, sin servidor de audio.
- Herramientas: yt-dlp, YouTube Music, Spotify · De dónde sale el audio y cómo se leen álbumes y listas.
- IA: Antigravity · El entorno con el que la construí en un día.
La prueba
- 13–17 s · de buscar a tener el MP3 etiquetado
- 320 kbps · MP3 con portada 600 × 600 y letra
- 1 día · lo que tardé en la primera versión
- 12 · commits de la revisión, cada arreglo por separado
Límites y siguientes pasos
La uso en mi computadora y entro desde el celular por la red de casa. Necesita yt-dlp instalado y un proceso de servidor; no funciona como una web estática. El funcionamiento en servidores externos depende también de las restricciones de los servicios de audio.
- Depende de servicios que cambian: este año se rompieron las listas de YouTube y la API de Spotify empezó a pedir Premium.
- El audio de YouTube viene a unos 128 kbps: el MP3 de 320 no le agrega calidad.
- En la revisión apareció un agujero real: el proxy de portadas aceptaba dominios que solo terminaban parecido. Ya está cerrado.
Lo que aprendí
- Con IA se construye rápido; lo que no se ahorra es probar contra los servicios de verdad.
- Una app que depende de terceros necesita fallar con un mensaje claro, no en silencio.
- Hacer algo para mí mismo fue la forma más rápida de saber si servía.
Repositorio
05VentaFlowGestión comercial para una tienda peruana
Ventas, compras e inventario conectados para entender qué pasa en una tienda. Construí VentaFlow con Vue y NestJS: registra comprobantes, calcula el IGV y mantiene el kardex al día con cada operación.
Ver el caso con sus imágenesMi papel
Definí el modelo de datos, desarrollé la API y la interfaz, y preparé el despliegue. Trabajé con Claude como apoyo durante el desarrollo y revisé los flujos con datos de demostración.
Equipo
Proyecto personal
Estado
Desplegada (Vercel + Render) · repositorio privado
2026
Alcance
Las capturas usan una empresa y productos inventados. El repositorio es privado.
El cuaderno de la tienda
Una tienda de barrio vende arroz, aceite y gaseosa todo el día, emite boletas, compra a proveedores y tiene que saber qué se está acabando. Casi todo eso se lleva en un cuaderno.
Vender
Lo que hay en el almacén
Decisiones de diseño
- Precios con IGV incluido: En la tienda se cobra el precio final. El sistema separa la base imponible después, con la tasa guardada como parámetro y no escrita en el código.
- Stock y kardex juntos: Vender y registrar el movimiento ocurren en la misma transacción; anular una venta devuelve el stock.
- Frontend y API separados: La interfaz en Vercel llama a «/api» y Vercel la redirige a Render: en el navegador no hay problemas de CORS y en local se usa la misma dirección.
- Lo de SUNAT, después: La emisión electrónica oficial (XML firmado) quedó como módulo enchufable. Primero, que la gestión interna funcione.
Tecnología y herramientas
- Lenguajes: TypeScript · El mismo lenguaje en la API y en la interfaz.
- Frameworks: NestJS, Vue, PrimeVue, Prisma · Doce módulos de API, la interfaz en Vue 3 y el acceso a datos tipado.
- Datos: PostgreSQL · Diecisiete modelos, separados por empresa.
- Infraestructura: Vercel, Render · El frontend en Vercel; la API y la base en Render.
- IA: Claude · Desarrollo asistido de punta a punta.
En código
- 17 · modelos de datos
- 12 · módulos de la API
- ~9900 · líneas entre API e interfaz
- 4 · pruebas de configuración e instalación
Límites y siguientes pasos
Al principio todo se probó a mano. Ahora la instalación tiene pruebas: exige claves propias y rechaza cargar la demo sobre una base con datos. Falta cubrir con pruebas automáticas los flujos completos de ventas, compras e inventario.
- El visor del PDF funcionaba en local y en producción no abría: el navegador bloqueaba la ventana porque se abría después de esperar al servidor. Lo encontré desplegando.
- La facturación electrónica ante SUNAT no existe todavía.
- Todavía no está validada en la operación diaria de un negocio; el siguiente paso es una prueba con una tienda real.
El comprobante
Lo que aprendí
- Las reglas del negocio peruano (IGV, series, notas de crédito) pesan más que la tecnología.
- Desplegar temprano encuentra errores que en local no existen.
- Construir rápido deja una deuda clara: comprobar después lo que di por hecho mientras programaba.
06AlquilaYaPlataforma de alquileres · trabajo final
Plataforma académica del equipo UPC para buscar y alquilar propiedades. Desarrollé el backend y, en esta versión, integré el frontend Angular del equipo con la API: registro, cotización, reservas y contratos con permisos por pertenencia.
Ver el caso con sus imágenesMi papel
Responsable del backend: API REST, modelo de dominio, reglas de negocio, persistencia y seguridad. Autor de la integración entre frontend y backend y del endurecimiento de seguridad de esta versión, con asistencia de Claude.
Equipo
Equipo de curso · Arquitectura de Aplicaciones Web, UPC
Estado
Proyecto académico · integrado en main · corre en local
2026
Alcance
El frontend es trabajo del equipo y ya está integrado en main (641d4e5, 7 de octubre de 2026). Las capturas muestran la interfaz Angular conectada a Spring Boot con H2 en local y datos de demostración ficticios. Las respuestas de la API de la revisión anterior se conservan como evidencia técnica.
El encargo
Una plataforma para alquilar casas y departamentos: unos publican, otros buscan, cotizan, reservan, firman y reseñan. Me tocó el backend; en esta revisión conecté la interfaz del equipo y reforcé las reglas del servidor.
La interfaz en computadora
Vista web · captura real. Búsqueda de estadías y gestión de reservas desde las cuentas de cliente y propietario, con datos de demostración ficticios.
- Inicio de AlquilaYa en computadora: buscador por distrito, precio máximo y huéspedes, con un departamento de demostración a S/ 100 por noche.
- Panel del propietario en computadora: una propiedad publicada, una reserva recibida por S/ 300 y ninguna reseña.
- Reservas recibidas en computadora: estadía pendiente de Cliente Demo, fechas, total de S/ 300 y botones para confirmar o cancelar la reserva.
- Mis reservas del cliente en computadora: departamento de demostración, fechas de la estadía, total de S/ 300, estado pendiente y opción de cancelar.
La interfaz en celular
Vista móvil · captura real. Las mismas cuentas de demostración en una pantalla de 390 × 844, capturada al doble de resolución.
- Inicio de AlquilaYa en celular: filtros de distrito, precio máximo y huéspedes sobre la tarjeta de un departamento de demostración.
- Panel del propietario en celular: tarjetas en columna con una propiedad publicada, una reserva recibida y un valor de reservas de S/ 300.
- Reservas recibidas en celular: huésped de demostración, fechas, total de S/ 300, estado pendiente y botones para confirmar o cancelar.
La API, respondiendo
Capturas de la revisión anterior de la API en local, con datos de prueba. La verificación de la integración actual se detalla más adelante.
Las reglas
- Cuenta y perfil, juntos: El registro crea ambos en una transacción, limita el rol permitido y devuelve conflicto si el usuario ya existe.
- Reserva y contrato, juntos: Una transacción crea los dos y bloquea la propiedad frente a reservas concurrentes con fechas cruzadas. El servidor calcula el precio y sincroniza la cancelación.
- El permiso depende de la pertenencia: El servidor comprueba de quién es cada recurso, además del rol. Los DTO de lectura excluyen cuentas, DNI y correos de terceros; la disponibilidad solo expone fechas y estado.
- Firmas privadas e imágenes verificadas: Las firmas requieren JWT y ser participante del contrato; no se sirven como archivos públicos. PNG y JPEG se decodifican y recodifican, con límites de 10 MB y 20 megapíxeles.
Tecnología y herramientas
- Lenguajes: Java, TypeScript · Java 25 en la API y TypeScript 5.9.3 en la interfaz.
- Frameworks: Spring Boot, Spring Security, JPA, Angular, Angular Material · Spring Boot 4.0.5; Angular 21.2.25 y Material 21.2.14, conservando los NgModules del equipo.
- Datos: PostgreSQL, H2 · PostgreSQL configurado para persistencia; H2 en las pruebas y en el perfil local opcional.
- Herramientas: Maven, JJWT, Vitest · Maven 3.9.11 para construir y verificar; JJWT 0.13.0 para los tokens; Vitest con jsdom para probar Angular.
Pruebas verificadas
Verificación del 7 de octubre de 2026, integrada en main (641d4e5): Maven verify y build de Angular completados. Backend con Tomcat y H2; frontend con HttpTestingController y jsdom. No son pruebas E2E de navegador.
- 33 · pruebas backend aprobadas
- 4 · de las 33 usan HTTP y JWT reales
- 59 · pruebas frontend aprobadas con Vitest
- 6 · archivos de pruebas frontend
Límites y siguientes pasos
Backend y frontend están integrados y publicados en main. Sigue siendo un proyecto académico para ejecutar en local: esta entrega no incluye un despliegue de infraestructura ni acredita que esté listo para producción.
- El JWT sigue en localStorage y expuesto ante un XSS. Pendiente migrar a cookies HttpOnly coordinando sesión, CSRF y CORS.
- Faltan pruebas E2E de navegador, migraciones y validación con PostgreSQL real; los contratos antiguos sin reserva requieren conciliación.
- Los pagos solo registran importes recibidos: no hay pasarela de cobro. La firma es una imagen privada, sin certificación criptográfica.
- El build de Angular pasa, pero conserva la advertencia de tamaño: 982,17 kB iniciales frente a 500 kB de aviso. Fuentes e iconos todavía dependen de servicios externos.
Lo que aprendí
- Que una ruta pida token no la hace segura: hay que comprobar que el dato pedido es de quien lo pide.
- Reserva y contrato necesitan una misma transacción; validar fechas también exige contemplar solicitudes concurrentes.
- Las pruebas HTTP y las de Angular comprueban partes distintas del flujo; todavía falta recorrerlo de punta a punta en un navegador.
Repositorio
07GroomersSistema de escritorio para una veterinaria · trabajo final
Un proyecto académico para reunir citas, pacientes y atención veterinaria en un sistema de escritorio. Participé en las pruebas funcionales y la documentación; después recuperé y corregí la aplicación para poder mostrar cómo funciona.
Ver el caso con sus imágenesMi papel
En el equipo me tocaron las pruebas funcionales y el reporte de fallos, el manual de usuario y ordenar la documentación. En 2026 lo revisé, corregí lo que no corría y lo publiqué.
Equipo
Equipo de cinco · Fundamentos de Sistemas de Información, UPC
Estado
Prototipo académico · corre en local
2025-1 · publicado en 2026
Alcance
Caso académico basado en Groomers Perú. Las capturas son de la versión revisada en 2026 y usan datos ficticios.
La agenda
Una red de veterinarias que agendaba en cuaderno, por teléfono y por WhatsApp. Dos citas a la misma hora, historias clínicas en papel y nadie sabía cuántas citas tenía cada veterinario.
Mi parte
Éramos cinco. Otros armaron el modelo de datos y los formularios; a mí me tocó probar: recorrer cada pantalla contra los requisitos y llevar los fallos a la reunión del equipo de forma que se pudieran corregir.
También escribí el manual de usuario —once pantallas pensadas desde la recepción de la clínica— y ordené la documentación en una carpeta que el resto pudiera encontrar.
La aplicación
Cómo está hecho
Presentación, negocio y datos en tres proyectos separados, y siete tablas detrás.
Tecnología y herramientas
- Lenguajes: C# · Toda la aplicación.
- Frameworks: .NET Framework, Windows Forms, Entity Framework · Once formularios de escritorio y el acceso a datos desde el modelo de la base.
- Datos: SQL Server · Siete tablas con borrado lógico y un registro de quién cambió qué.
- Herramientas: Visual Studio, Figma, Canva · El código, los mockups y la presentación.
Lo que hay
- 11 · formularios
- 7 · tablas relacionadas
- 5 · reportes
- 4 de 20 · requisitos del informe completos en el código
Límites y siguientes pasos
El informe pedía veinte requisitos y el código cubre cuatro completos y cinco a medias. El historial clínico —uno de los tres problemas del caso— nunca tuvo pantalla. Quedó como prototipo: no se instaló en ninguna clínica.
- La versión de 2025 compilaba pero fallaba al usarla: varios formularios buscaban identificadores que ya no existían. Lo vi al revisarlo en 2026 y lo corregí antes de publicarlo.
- Las contraseñas se guardaban en texto plano; ahora se protegen con PBKDF2 y cada instalación define su propia clave de acceso.
- La disponibilidad solo compara horas exactas: no calcula cuánto dura una cita ni si se solapan.
Lo que aprendí
- Que compile no significa que funcione: hay que recorrer cada operación contra la base.
- Probar bien es un trabajo en sí mismo, y comunicar un fallo con claridad es la mitad de corregirlo.
- Separar lo que se pidió de lo que se construyó evita prometer lo que no existe.
Repositorio
Trabajos
08Gap analysis ISO/IEC 27001Seguridad de la información · trabajo final
Analizamos las brechas de seguridad de una empresa peruana frente a los 93 controles del Anexo A de ISO/IEC 27001:2022. El trabajo vincula cada hallazgo con su causa y una propuesta de acción.
Ver el caso con sus imágenesMi papel
Uno de los seis autores del informe y de la matriz.
Equipo
Grupo de seis · Gestión de Seguridad de la Información, UPC
Estado
Informe y matriz de 93 controles
2026-1
Alcance
Ejercicio académico hecho con información pública y supuestos del equipo. No es una auditoría real ni describe el estado de seguridad de ninguna empresa.
La pregunta
¿Qué tan lejos está una empresa de cumplir la ISO/IEC 27001? Lo medimos control por control, desde fuera, con lo que la propia empresa publica.
Cómo se midió
Sin acceso a sus sistemas, la evidencia fue pública: memoria anual, reportes de sostenibilidad, políticas publicadas, documentos ante la SMV. Lo que no se podía ver se infirió de empresas de escala similar, y así quedó escrito.
Cada control recibió un porcentaje según cuatro preguntas de la plantilla de la UPC, y el porcentaje decidió su estado.
- ¿Hay una política documentada?
- ¿Se aplica en la práctica?
- ¿Qué tanto cubre?
- ¿Alguien lo vigila?
Los 93 controles
Cada cuadro es un control del Anexo A. Verde cumple (más del 70 %), ámbar a medias (40–70 %), rojo no cumple.
Por tema
Lo tecnológico es lo más débil: 22 de sus 34 controles tienen brecha.
En números
- 93 · controles evaluados
- 51 · con brecha (parcial o no cumple)
- 66,3 % · cumplimiento medio, recalculado desde la matriz
- 75 · medidas en el plan de acción
Lo que se repite
Los controles más altos son los de papel: políticas, uso aceptable, requisitos legales, contratos. Los más bajos son los que piden ejecutar: enmascarar datos, prevenir fugas, programar y probar con seguridad.
La conclusión del informe cabe en una línea: hay gobierno en los documentos que no llega a la operación técnica.
La matriz
Dos páginas del informe: cada control con su pregunta de auditoría, el documento que lo respalda, el comentario y su estado.
El informe
- Contexto: La empresa, su tecnología y su cadena de proveedores.
- Marco: ISO/IEC 27001 y 27002:2022, y la escala de evaluación.
- Matriz: Los 93 controles con pregunta, evidencia, porcentaje y estado.
- Causa raíz: Por qué existe cada una de las 51 brechas.
- Plan de acción: 75 medidas: DLP, SIEM, desarrollo seguro, concientización…
- Cierre: Cinco recomendaciones, cinco conclusiones y un glosario.
Lo que no cuadra
Al revisarlo para este portafolio recalculé todo desde la matriz y encontré que el informe da cuatro cumplimientos globales distintos (55 %, 71 %, 48 % para lo tecnológico) y ninguno sale de los datos: la media real es 66,3 %.
- La plantilla oficial tenía un desfase de una fila desde el control 8.03; el promedio coincidió por casualidad.
- Solo dos controles citan una fuente verificada; el resto son inferencias razonables, pero inferencias.
- El plan de acción no tiene plazos, costos ni orden de prioridad.
Lo que aprendí
- Separar desde el principio lo verificado de lo inferido. Una columna más habría bastado.
- Revisar la plantilla antes de confiar en ella.
- Una cifra, una fuente: recalcularlo todo al cerrar habría evitado las cuatro versiones del mismo número.
09Arquitectura empresarial para una MYPEArquitectura empresarial · trabajo final
Estudiamos cómo opera un taller de sublimación y propusimos una arquitectura para ordenar sus procesos. El diagnóstico se acompañó de dos automatizaciones de prueba para reposición de stock y aprobación de compras.
Ver el caso con sus imágenesMi papel
Uno de los cinco autores. En el plan de implementación, mi rol era infraestructura cloud y base de datos.
Equipo
Grupo de cinco · Arquitectura Empresarial, UPC
Estado
Informe de 113 páginas · dos flujos probados
2026-1
Alcance
Caso académico sobre una MYPE real, presentada sin su nombre. Casi todo es propuesta; lo construido son dos flujos en el entorno de la universidad.
El taller
Tres personas, pedidos por WhatsApp e Instagram, el inventario en un cuaderno y todo pasando por la dueña. El stock se notaba cuando ya se había acabado.
El diagnóstico
Antes de proponer nada, el estado actual: mapa de procesos, cadena de valor, mapa de capacidades, BPMN de pedidos e inventario, un 5W2H y un Ishikawa.
La causa se repetía en todos: registro manual, sin un método y sin medir. El problema no era la falta de software; era que nada quedaba escrito en un solo lugar.
Antes y después
El mismo negocio en ArchiMate: cómo funciona hoy y cómo funcionaría con los sistemas de pedidos e inventario.
Cuatro capas
Por cada capa de TOGAF: las brechas, los principios y los catálogos que salieron.
Tecnología e integración
Qué automatizar primero
Impacto + repetición + volumen + retorno − complejidad. El registro de pedidos dolía más, pero inventario se podía resolver primero con poco código.
Lo que sí corre
Dos flujos de Power Automate probados en junio de 2026: uno arma la solicitud de reposición y otro espera la aprobación de la dueña antes de confirmar la compra.
Diez meses
Seis iniciativas en cinco fases, ordenadas por impacto sobre costo.
Límites y siguientes pasos
Casi todo es propuesta. Lo único que corre son dos flujos en el entorno Microsoft 365 de la universidad, y el aviso de stock mínimo lo simulamos con un correo escrito a mano.
- Las cifras de impacto (9,5 horas libres a la semana, reposición en menos de 24 horas) salen de una entrevista, no de medir.
- El documento se contradice: da tres tiempos de recuperación distintos (24 h, 1 h y 5 min) y tres disponibilidades.
- No tiene costos, aunque el primer capítulo diga que sí.
Lo que aprendí
- Empezar por lo que se puede demostrar: dos flujos pequeños le dieron peso a un documento de 113 páginas.
- Medir la línea base antes de prometer beneficios.
- Los parámetros del propio informe también necesitan una sola fuente de verdad.
10CETPRO InclusivoGerencia de proyectos · trabajo final
Preparamos el plan de un sistema de gestión educativa para los CETPRO de CONADIS. Definimos alcance, actividades, presupuesto, riesgos e interesados para explicar cómo se organizaría la implementación.
Ver el caso con sus imágenesMi papel
Uno de los seis autores del plan.
Equipo
Grupo de seis · Gerencia de Proyectos de SI/TI, UPC
Estado
Plan de proyecto · no se ejecutó
2025-2
Alcance
Caso académico sobre unos términos de referencia reales de CONADIS. Es un plan: no se construyó el sistema ni hubo contratación.
El encargo
Una licitación real de CONADIS: implementar en 330 días el sistema de gestión educativa de los CETPRO, para personas con discapacidad. Nuestro trabajo fue planificarla como si fuéramos el contratista.
El alcance
La matrícula, las notas y los certificados de los CETPRO se hacían a mano o casi. Los términos de referencia pedían un sistema y fijaban las reglas: 330 días, once entregables, uno cada 30 días, pago en armadas iguales y seis meses de garantía.
De ahí salieron 24 requisitos funcionales —13 académicos, 8 administrativos y 3 de soporte— y 10 no funcionales con un número que se puede medir.
- Disponibilidad de al menos 95 %.
- Respuesta en menos de 2 segundos.
- 70 % de cobertura de pruebas.
- 90 % de tareas críticas resueltas en la prueba con usuarios.
Once entregables
Uno cada 30 días, cada uno atado a sus requisitos.
El presupuesto
Costo, más 15 % de contingencia, más 10 % de reserva de gestión.
Los riesgos
Diez riesgos con probabilidad, impacto, respuesta y responsable. Después de la respuesta, ninguno queda en «muy grave».
El plan, contado
- 142 · actividades en MS Project
- 26 · hitos con fecha y responsable
- 28 · paquetes de trabajo en la EDT
- 16 · perfiles · 891 días-persona
El documento
- Acta de constitución: Problema, causas y objetivos.
- Alcance: Requisitos, entregables, criterios de aceptación y exclusiones.
- EDT y cronograma: 4 fases, 28 paquetes, 142 actividades, 26 hitos.
- Costos y recursos: 16 perfiles, 11 rubros de infraestructura y las reservas.
- Riesgos: Inherentes, residuales y la reserva por valor monetario esperado.
- Interesados y comunicaciones: 6 interesados, 6 reuniones y 10 informes.
Lo que no cuadra
El contrato da 330 días y el cronograma suma 422 de ejecución. Los once entregables sí caben en los 330; lo que se pasa son 25 días de análisis antes y 64 de puesta en producción, capacitación y manuales después, que metimos dentro de «ejecución» sin decirlo.
- Excluimos los servidores del alcance y aun así los presupuestamos: S/ 16 500.
- La reserva de contingencia coincide al céntimo con el valor monetario esperado de los riesgos. Es más honesto llamarla «15 %, contrastado con el VME».
- Las historias de usuario no tenían criterios de aceptación.
Lo que aprendí
- Alcance, cronograma y costo se revisan juntos: mover un plazo mueve recursos y dinero.
- Una reserva cubre incertidumbre; no es margen.
- La inclusión necesita criterios que se puedan probar con las herramientas que usa la persona, no buenas intenciones en el documento.
El resto del portafolio
11Sobre mípáginas
Me gusta encontrar el punto donde una necesidad cotidiana se convierte en una buena idea para construir.
Abrir la páginaJuan Sebastián Torres Sánchez
Soy Juan Sebastián, de Lima. Estudio Ingeniería de Sistemas de Información en la UPC y curso el 8.º ciclo. Me interesan el desarrollo de aplicaciones, los datos y la seguridad, especialmente cuando ayudan a resolver algo que conozco de cerca.
He apoyado en ventas, pedidos y organización en los negocios de mi familia, y también he trabajado en logística. De esa experiencia salió Galería Midas: transformar un plano de papel en una herramienta para encontrar locales y organizar recorridos.
Estoy abierto a oportunidades donde pueda aportar, recibir buenas preguntas y seguir aprendiendo. Me gusta entender el problema antes de abrir el editor, documentar las decisiones y revisar lo que realmente funciona.
12Stackpáginas
Herramientas aplicadas en proyectos y conocimientos respaldados por cursos. Cada entrada lleva a su contexto.
Abrir la páginaBackend
Servicios para alquileres, ventas e inventario. Java en AlquilaYa, NestJS en VentaFlow y Flask en XoraMarket.
- Java
- Spring Boot
- NestJS
- Python
- Flask
- C#
Frontend
Interfaces en Vue, aplicaciones web con Next.js y sitios en HTML, CSS y JavaScript. Cada elección responde a un proyecto concreto.
- TypeScript
- Vue
- PrimeVue
- Next.js
- React
- Tailwind CSS
- HTML / CSS
- JavaScript
Datos y análisis
Bases relacionales en los proyectos y formación en datos con IBM y analítica de cadena de suministro con Rutgers.
- PostgreSQL
- Prisma
- SQLite
- SQL Server
- Excel
- Fundamentos de ciencia de datos
- Analítica de cadena de suministro
Desarrollo asistido por IA
Claude, Codex y Antigravity aparecen en los proyectos. La asistencia incluye código y revisión; mi trabajo incluye definir el alcance y decidir qué integrar.
- Claude
- Codex
- Antigravity
Seguridad de la información
Un análisis académico de los 93 controles del Anexo A y ocho cursos de Google Cybersecurity. La ficha distingue los supuestos del equipo de una auditoría real.
- ISO/IEC 27001:2022
- ISO/IEC 27002:2022
- NIST CSF 2.0
- Gap analysis
- Google Cybersecurity
Arquitectura y procesos
Arquitectura propuesta para una MYPE, diagramas de procesos y dos flujos de Power Automate probados en el entorno universitario.
- TOGAF
- ArchiMate / Archi
- BPMN
- Bizagi Modeler
- Power Automate
Herramientas y planificación
Control de versiones en los proyectos de software y planificación académica de CETPRO: cronograma, alcance, riesgos y seguimiento del costo.
- Git / GitHub
- Visual Studio
- Microsoft Project
- PMBOK 6
- EDT
13Proyectospáginas
El problema que resuelve, qué hice yo, y con qué está construido.
Abrir la páginaGalería Midas
Convertí el plano de papel de la Galería Nicolini en una app para el equipo de reparto de Midas. Permite encontrar un local, consultar quién recibe el pedido y seguir una ruta por los pasajes, incluso sin señal.
Identifiqué el problema durante mi trabajo en logística, transcribí el plano y desarrollé la aplicación. Contrasté los datos con las fotografías del documento original.
Criaderos Hermanos Torres
Diseñé esta app para mi papá y su criadero. Guarda la genealogía, las camadas, las fotos de crecimiento y las tareas pendientes en su celular. La historia de cada ejemplar sigue disponible aunque no haya internet.
Definí el problema con mi papá, diseñé la interfaz y desarrollé la aplicación con asistencia de IA. Revisé los registros, el árbol familiar y los respaldos mediante pruebas.
XoraMarket
Creé un punto de venta para el negocio de mi familia. La misma mercadería puede venderse por caja, plancha o unidad; XoraMarket convierte cada venta al stock real y reúne las cuentas en un solo lugar.
Diseñé el modelo de datos y desarrollé el punto de venta, el inventario y los reportes. Después separé la aplicación en módulos y añadí pruebas con asistencia de IA.
TuneDrop
Una herramienta personal para cuidar mi biblioteca musical. TuneDrop reúne portada, artista, álbum y letra en archivos MP3 que mi reproductor puede reconocer, con los metadatos a la vista antes de guardarlos.
Construí el primer prototipo en un día con un agente de IA en Antigravity. Después revisé la integración con los servicios, corregí errores y publiqué el código.
VentaFlow
Ventas, compras e inventario conectados para entender qué pasa en una tienda. Construí VentaFlow con Vue y NestJS: registra comprobantes, calcula el IGV y mantiene el kardex al día con cada operación.
Definí el modelo de datos, desarrollé la API y la interfaz, y preparé el despliegue. Trabajé con Claude como apoyo durante el desarrollo y revisé los flujos con datos de demostración.
AlquilaYa
Plataforma académica del equipo UPC para buscar y alquilar propiedades. Desarrollé el backend y, en esta versión, integré el frontend Angular del equipo con la API: registro, cotización, reservas y contratos con permisos por pertenencia.
Responsable del backend: API REST, modelo de dominio, reglas de negocio, persistencia y seguridad. Autor de la integración entre frontend y backend y del endurecimiento de seguridad de esta versión, con asistencia de Claude.
Groomers
Un proyecto académico para reunir citas, pacientes y atención veterinaria en un sistema de escritorio. Participé en las pruebas funcionales y la documentación; después recuperé y corregí la aplicación para poder mostrar cómo funciona.
En el equipo me tocaron las pruebas funcionales y el reporte de fallos, el manual de usuario y ordenar la documentación. En 2026 lo revisé, corregí lo que no corría y lo publiqué.
Gap analysis ISO/IEC 27001
Analizamos las brechas de seguridad de una empresa peruana frente a los 93 controles del Anexo A de ISO/IEC 27001:2022. El trabajo vincula cada hallazgo con su causa y una propuesta de acción.
Uno de los seis autores del informe y de la matriz.
Arquitectura empresarial para una MYPE
Estudiamos cómo opera un taller de sublimación y propusimos una arquitectura para ordenar sus procesos. El diagnóstico se acompañó de dos automatizaciones de prueba para reposición de stock y aprobación de compras.
Uno de los cinco autores. En el plan de implementación, mi rol era infraestructura cloud y base de datos.
CETPRO Inclusivo
Preparamos el plan de un sistema de gestión educativa para los CETPRO de CONADIS. Definimos alcance, actividades, presupuesto, riesgos e interesados para explicar cómo se organizaría la implementación.
Uno de los seis autores del plan.
14Certificacionespáginas
19 certificados, cuatro áreas y un mismo hábito: seguir aprendiendo. Aquí están los documentos de mis cursos y mi evaluación de inglés.
Abrir la páginaCiberseguridad · ocho cursos
Google · Coursera
2025
Ocho cursos de Google: riesgos, redes, Linux, SQL, Python y respuesta a incidentes. Certificados individuales de finalización.
- Foundations of Cybersecurity · 30 nov. 2025
- Play It Safe: Manage Security Risks · 30 nov. 2025
- Connect and Protect: Networks and Network Security · 30 nov. 2025
- Tools of the Trade: Linux and SQL · 30 nov. 2025
- Assets, Threats, and Vulnerabilities · 30 nov. 2025
- Sound the Alarm: Detection and Response · 30 nov. 2025
- Automate Cybersecurity Tasks with Python · 30 nov. 2025
- Put It to Work: Prepare for Cybersecurity Jobs · 30 nov. 2025
Ciencia de datos · cinco cursos
IBM · Coursera
2025–2026
Fundamentos, metodología y herramientas de ciencia de datos; Python y un proyecto aplicado.
- What is Data Science? · 2 nov. 2025
- Tools for Data Science · 2 nov. 2025
- Data Science Methodology · 2 nov. 2025
- Python for Data Science, AI & Development · 6 jun. 2026
- Python Project for Data Science · 6 jun. 2026
Analítica de la cadena de suministro
Rutgers · Coursera
2025
Cinco cursos sobre demanda, inventario, inteligencia de negocio y análisis de la cadena de suministro.
- Supply Chain Analytics Essentials · 5 jul. 2025
- Business Intelligence and Competitive Analysis · 5 jul. 2025
- Demand Analytics · 5 jul. 2025
- Inventory Analytics · 5 jul. 2025
- Supply Chain Analytics · 6 jul. 2025
Inglés B2 — EnglishScore
British Council
2026
Core Skills: 465 puntos, nivel B2. Gramática, vocabulario, comprensión lectora y auditiva.
- EnglishScore Core Skills · B2 · 31 jul. 2026
15Experienciapáginas
Trabajo cotidiano, proyectos en equipo y aprendizaje aplicado. Cada experiencia me ha dado una forma distinta de entender los problemas.
Abrir la páginaVentas y operación de la tienda
Negocio familiar · comercio
- Apoyo en la atención de ventas y en la organización, distribución y envío de pedidos. También participo en las tareas administrativas de la tienda.
Organización y apoyo a los procesos
Apoyo a la actividad familiar
- Colaboro en la organización de tareas y en la resolución de necesidades del día a día. Es un espacio donde aprendo a ordenar procesos y dar seguimiento al trabajo.
Logística y reparto
Midas
- Trabajé en logística y reparto. La dificultad de encontrar locales con un plano de papel me llevó a crear Galería Midas, una aplicación para consultar ubicaciones y organizar recorridos.
Proyecto de investigación — tesis
UPC
2026 — en curso
- Gemelo digital urbano para simular y comparar escenarios de inundación en una zona delimitada de Lima usando aprendizaje automático.
Análisis de seguridad de la información
Trabajo académico · UPC
2026
- Revisión de los 93 controles del Anexo A de ISO/IEC 27001, con evidencias, brechas y prioridades de remediación.
Automatización de procesos documentales
Proyecto de curso · UPC
2025
- Flujo en Power Automate para convertir a Word los PDF recibidos como adjuntos de correo.
Groomers
Trabajo final en equipo · UPC
2025-1 · publicado en 2026
- Sistema académico para gestionar propietarios, mascotas, citas y reportes de una veterinaria, con C#, Windows Forms y SQL Server.
AlquilaYa
Trabajo final · UPC
2026
- Plataforma académica de alquileres del equipo UPC. Responsable del backend Spring Boot, la integración con el frontend Angular del equipo y el endurecimiento de seguridad; 33 pruebas backend y 59 frontend verificadas.
16Trayectoriapáginas
De la formación en Lima a mis primeras aplicaciones. Las etapas, los proyectos y lo que sigo aprendiendo en el camino.
Abrir la páginaAntes de la universidad
Mi recorrido escolar en Lima, antes de empezar Sistemas de Información.
- José del Carmen Marín Arista · Primeros años de primaria · Av. Nicolás de Piérola, Lima
- República de Panamá · Primaria · La Victoria
- Alfonso Ugarte · 1.º y 2.º de secundaria · San Isidro
- Saco Oliveros · 3.º a 5.º de secundaria · Av. Cuba
2023
- Ingreso a la UPC: Comienzo Ingeniería de Sistemas de Información en la UPC: una base para conectar tecnología, datos y procesos de negocio.
2025
- Automatización de procesos documentales: Proyecto de curso · UPC. Flujo en Power Automate para convertir a Word los PDF recibidos como adjuntos de correo.
- CETPRO Inclusivo: Preparamos el plan de un sistema de gestión educativa para los CETPRO de CONADIS. Definimos alcance, actividades, presupuesto, riesgos e interesados para explicar cómo se organizaría la implementación.
- Ciberseguridad · ocho cursos: Google · Coursera. Ocho cursos de Google: riesgos, redes, Linux, SQL, Python y respuesta a incidentes. Certificados individuales de finalización.
- Analítica de la cadena de suministro: Rutgers · Coursera. Cinco cursos sobre demanda, inventario, inteligencia de negocio y análisis de la cadena de suministro.
2026
- Galería Midas: Convertí el plano de papel de la Galería Nicolini en una app para el equipo de reparto de Midas. Permite encontrar un local, consultar quién recibe el pedido y seguir una ruta por los pasajes, incluso sin señal.
- Criaderos Hermanos Torres: Diseñé esta app para mi papá y su criadero. Guarda la genealogía, las camadas, las fotos de crecimiento y las tareas pendientes en su celular. La historia de cada ejemplar sigue disponible aunque no haya internet.
- XoraMarket: Creé un punto de venta para el negocio de mi familia. La misma mercadería puede venderse por caja, plancha o unidad; XoraMarket convierte cada venta al stock real y reúne las cuentas en un solo lugar.
- TuneDrop: Una herramienta personal para cuidar mi biblioteca musical. TuneDrop reúne portada, artista, álbum y letra en archivos MP3 que mi reproductor puede reconocer, con los metadatos a la vista antes de guardarlos.
- VentaFlow: Ventas, compras e inventario conectados para entender qué pasa en una tienda. Construí VentaFlow con Vue y NestJS: registra comprobantes, calcula el IGV y mantiene el kardex al día con cada operación.
- AlquilaYa: Plataforma académica del equipo UPC para buscar y alquilar propiedades. Desarrollé el backend y, en esta versión, integré el frontend Angular del equipo con la API: registro, cotización, reservas y contratos con permisos por pertenencia.
- Groomers: Un proyecto académico para reunir citas, pacientes y atención veterinaria en un sistema de escritorio. Participé en las pruebas funcionales y la documentación; después recuperé y corregí la aplicación para poder mostrar cómo funciona.
- Gap analysis ISO/IEC 27001: Analizamos las brechas de seguridad de una empresa peruana frente a los 93 controles del Anexo A de ISO/IEC 27001:2022. El trabajo vincula cada hallazgo con su causa y una propuesta de acción.
- Arquitectura empresarial para una MYPE: Estudiamos cómo opera un taller de sublimación y propusimos una arquitectura para ordenar sus procesos. El diagnóstico se acompañó de dos automatizaciones de prueba para reposición de stock y aprobación de compras.
- Ciencia de datos · cinco cursos: IBM · Coursera. Fundamentos, metodología y herramientas de ciencia de datos; Python y un proyecto aplicado.
- Inglés B2 — EnglishScore: British Council. Core Skills: 465 puntos, nivel B2. Gramática, vocabulario, comprensión lectora y auditiva.
- 8.º ciclo: Curso el 8.º ciclo y desarrollo mi investigación sobre un gemelo digital urbano para estudiar escenarios de inundación en Lima.
- Proyecto de investigación — tesis: UPC. Gemelo digital urbano para simular y comparar escenarios de inundación en una zona delimitada de Lima usando aprendizaje automático.
17Preguntaspáginas
Sobre mi disponibilidad, cómo trabajo y qué encontrarás en los proyectos. Si te queda una duda, escríbeme.
Abrir la página¿Qué oportunidad estás buscando?
Estoy abierto a oportunidades relacionadas con Sistemas de Información. Me interesa aportar en tecnología, información y procesos, y entender qué necesita resolver cada equipo. También quiero seguir creciendo en datos y seguridad.
Estoy en 8.º ciclo en la UPC. Podemos conversar sobre el equipo, las responsabilidades y cómo coordinar el horario con mis estudios.
¿Por dónde empiezo a ver tus proyectos?
Galería Midas es un buen punto de partida: nació de un problema que conocí trabajando en logística. Si te interesa el desarrollo de aplicaciones, también puedes revisar Groomers y AlquilaYa.
En cada ficha explico el contexto, mi participación, las decisiones y el estado del proyecto. Las capturas te permiten recorrerlo incluso cuando no hay una demo pública.
¿Qué puedes aportar a un equipo?
Puedo contribuir al desarrollo de aplicaciones, al análisis de procesos y a la documentación del trabajo. He preparado diagramas, cronogramas, matrices y sistemas como parte de mis proyectos.
Me interesa entender qué necesita el equipo, dividir el problema en tareas concretas y pedir revisión cuando hace falta. Valoro trabajar con otras personas, compartir decisiones y seguir aprendiendo.
¿Cómo trabajas con herramientas de inteligencia artificial?
Las uso para explorar alternativas, desarrollar y revisar código. Yo planteo el problema, doy dirección al proyecto y reviso el resultado. En las fichas explico cuándo han participado herramientas como Claude o Codex.
Lo que muestro aquí incluye ese proceso: las decisiones, las pruebas y los límites de lo que está construido.
¿Todos los proyectos están en producción?
Tienen estados distintos. Hay aplicaciones publicadas, proyectos que funcionan en un entorno local y trabajos cuyo resultado es un documento académico. La ficha de cada uno indica su situación.
Cuando no existe una demo pública, comparto las capturas y la explicación técnica disponibles. Los datos reales de clientes y los documentos privados no forman parte del portafolio público.
¿Qué haces cuando no sabes resolver algo?
Primero intento entender qué está fallando y reducirlo a algo que pueda probar. Busco documentación, comparo alternativas y uso la IA para explorar caminos.
Si todavía tengo dudas, las pongo sobre la mesa. Prefiero pedir una revisión a presentar como resuelto algo que no entiendo bien.
¿Qué nivel de inglés tienes?
Tengo un resultado B2 en EnglishScore Core Skills, con 465 puntos, de julio de 2026. La evaluación cubre gramática, vocabulario, lectura y comprensión auditiva.
El documento está en Certificaciones. Ese resultado no incluye una evaluación de conversación, así que prefiero ser preciso con lo que acredita.
¿Cómo construiste este portafolio?
Está hecho con Next.js, TypeScript y Tailwind CSS. Uso GSAP y Lenis para parte del movimiento, y los juegos tienen sus propios motores. El contenido se mantiene separado de los componentes.
Yo defino la dirección y reviso las decisiones; Claude y Codex han participado como apoyo en desarrollo y pruebas. El Laboratorio reúne algunos experimentos de esa exploración.
¿Qué hay detrás de los gatos y el modo Nyan?
Los gatos son parte de mi vida y quería que también se notara aquí. El modo Nyan, los juegos y las fotos muestran ese lado más personal.
También me interesa estudiar Veterinaria más adelante. Hoy sigo enfocado en Sistemas de Información, pero me gusta dejar espacio para esa otra curiosidad.
¿Qué proyecto conecta más con tu vida fuera de clase?
Galería Midas. Trabajando en logística me tocó buscar locales con un plano de papel, y de ahí salió la idea de convertirlo en una herramienta que pudiera consultar desde el celular.
También está el registro de Criaderos Hermanos Torres: organizar información de animales conecta con una parte de mí que no se queda solo en la pantalla.
¿Ya elegiste una especialidad dentro de Sistemas?
Todavía estoy explorando. He trabajado en aplicaciones, procesos, datos y seguridad, pero no quiero escoger una etiqueta solo porque encaje en el CV.
La IA me interesa mucho, sobre todo por lo que permite hacer con una idea. Quiero seguir encontrando dónde puedo aportar mejor, combinando tecnología con entender a las personas y al negocio.
¿Qué aprendiste trabajando con tu familia?
Que detrás de una venta hay pedidos que ordenar, personas a las que responder y cosas que deben llegar a tiempo. Ayudo en esas tareas y en la parte administrativa de la tienda.
Esa experiencia me sirve cuando pienso un sistema: intento empezar por cómo se trabaja de verdad y qué podría hacer más fácil el día.
¿Qué estás investigando ahora?
Mi investigación de la carrera gira alrededor de un gemelo digital urbano para comparar escenarios de inundación en una zona delimitada de Lima, con apoyo de aprendizaje automático.
Sigue en curso. La muestro como investigación, sin presentarla como una solución terminada ni atribuirle resultados que aún no tengo.
¿Cómo sería una buena primera conversación contigo?
Cuéntame qué está construyendo el equipo, qué necesita resolver y dónde tendría espacio para aprender y aportar. Con ese contexto puedo mostrarte los trabajos que más se relacionan.
También podemos revisar responsabilidades, modalidad y horarios para compatibilizar la oportunidad con mis estudios. No hace falta llegar con una propuesta perfecta.
18Contactopáginas
19Arcadepáginas
Rebote · Órbita · Nyan Paint
Abrir la páginaRebote
Rompe formaciones, combina mejoras y devuelve cada bola. Seis cámaras y un guardián para una partida más.
Rebotes · Combos · Mejoras
Ratón / A D · Espacio Sobrecarga · P pausa
Órbita
Pilota entre formaciones enemigas, esquiva a cámara lenta y carga tu especial. Cada oleada cambia el ritmo hasta el encuentro con el jefe.
Naves · Acción
Flechas / WASD · Espacio · Shift
Nyan Paint
Traza caminos y conquista el espacio. Decide cuándo cerrar tu ruta, recoge poderes y mantente lejos de Tac Nayn.
Territorio · Estrategia arcade
Flechas / WASD · Espacio
20Logrospáginas
Los descubrimientos y retos que guarda este portafolio.
Abrir la páginaNyan Cat
Nyan Paint
- It works on my machine: Jugaste una partida.
- Tostada: Encerraste a un enemigo y lo viste explotar.
- git push --force: La estela es tuya… y también te muerde.
- En racha: Llegaste a una racha de ×4.
- Merge conflict: Cerraste un rodeo de más de 100 celdas.
- npm install estrellas: Recogiste 15 estrellas en una partida.
- Race condition: Rozaste cinco enemigos y viviste para contarlo.
- Garbage Collector: Destruiste diez enemigos en una partida.
- Production Survivor: Activaste el modo arcoíris.
- Zero Downtime: Pasaste un nivel sin perder una vida.
- 100% coverage: Pintaste el 80 % de un nivel.
- Fauna estelar: Destruiste una medusa, una nube, un osito y una brasa en una partida.
- Paso de lado: Esquivaste tres embestidas completas de Tac Nayn.
- Ni un rasguño: Venciste a Tac Nayn sin perder vidas en su nivel.
- kill -9: Fulminaste a un enemigo con el arcoíris o la estela eléctrica.
- Bote de pintura: Pintaste veinte celdas con un solo prisma.
- Una galleta más: Encontraste la galleta arcoíris.
- Ctrl+C Ctrl+V Engineer: Llegaste a 4000 puntos.
- Stack Overflow Certified: Llegaste al nivel 3.
- 404 Sleep Not Found: Jugaste cinco partidas seguidas sin cerrar.
- Boss Fight: Llegaste al nivel de Tac Nayn.
- Deploy a producción: Al final del cielo espera una sombra.
Rebote
Seis cámaras, un circuito
- Primera cámara: Limpiaste una cámara de Rebote.
- Doce seguidas: Encadenaste doce bloques sin perder el combo.
- Sin frenos: Activaste Sobrecarga en Rebote.
- Circuito completo: Superaste las seis cámaras y el Ovillo.
Misión Estelar
Matamarcianos
- Anillo abierto: Superaste al orbe de la nebulosa.
- Compuerta libre: Desactivaste la estación Lucerna.
- Marea despejada: Superaste a la mantarraya solar.
- Cerca y a salvo: Conseguiste diez roces en una misión.
- Entre las estrellas: Completaste los diez sectores.
- Legado · Guardián anterior: Recuerdo de la campaña anterior, conservado.
- Eclipse despejado: Despejaste el guardián del eclipse.
- Maniobras impecables: Completaste la misión sin recibir daño.
- Equipo completo: Combinaste dos mejoras durante una misión.
- Limpieza orbital: Eliminaste con un pulso a todos los enemigos de una oleada de tres o más.
- A salvo en órbita: Recogiste un escudo.
- Cruce peligroso: Llegaste al sector cinco.
- Cazatesoros: Conseguiste diez mil puntos.
Secretos del portafolio
Fuera de los juegos
- El código de siempre: Arriba, arriba, abajo…
- Línea de comandos: Hay una consola debajo del sitio.
- Un ronroneo: Los gatos del pie se dejan tocar.
- Sin favoritos: Son dos. A los dos les gusta lo mismo.
- De paseo: Se agarra del pescuezo.
- Escala completa: La línea del contacto suena entera.
- Lo que hay en el cajón: Sobre mí tiene un cajón.
- Lo leíste todo: Cada caso tiene su página.
- Turista: El sitio tiene más de una luz.
- Cinco estrellas, una sola: En el cielo de Nyan hay estrellas dormidas.
- La recreativa: Las estrellas abren algo.
21Laboratoriopáginas
Pruebas de movimiento, tipografía e interacción que forman parte de este portafolio. Aquí puedes explorarlas juntas y ver cómo cambian con cada tema.
Abrir la páginaDecisiones creativas
Soy Juan Torres. Defino la dirección, el contenido y las prioridades de este portafolio. Claude y Codex han asistido en la implementación y las pruebas; reviso sus propuestas y decido qué integrar.
- Primero, el trabajo: Los proyectos muestran el problema, mi aporte y las herramientas. El movimiento acompaña la lectura.
- Una misma historia, varias formas: El contenido sigue siendo verificable mientras los temas cambian la atmósfera y la interacción.
- Claude y Codex: La asistencia de IA forma parte del proceso, desde las propuestas de código hasta su revisión. La dirección y las decisiones de publicación son mías.
Texto
Componentes del sitio en los tres temas: Día, Noche y Nyan. Cada muestra indica si utiliza JavaScript.
- Texto
- Superficies
- Fondos
- Interacción
- Menú con vista previa
- Tarjetas apiladas al desplazarse
22Currículumpáginas
Estudiante de 8.º ciclo de Ingeniería de Sistemas de Información en la UPC. He trabajado en aplicaciones web con Spring Boot, NestJS, Vue y Flask, bases de datos relacionales y análisis académico de seguridad. También he apoyado en ventas, pedidos y organización de negocios familiares. Me interesa aportar en tecnología, información y procesos, y seguir aprendiendo junto a un equipo.
Abrir la páginaPerfil
Estudiante de 8.º ciclo de Ingeniería de Sistemas de Información en la UPC. He trabajado en aplicaciones web con Spring Boot, NestJS, Vue y Flask, bases de datos relacionales y análisis académico de seguridad. También he apoyado en ventas, pedidos y organización de negocios familiares. Me interesa aportar en tecnología, información y procesos, y seguir aprendiendo junto a un equipo.
- Ubicación: Lima, Perú
- Formación: Ing. de Sistemas de Información · UPC
- Ciclo: 8.º ciclo
- Inglés: B2 (British Council)
Experiencia y actividad formativa
- Ventas y operación de la tienda · Negocio familiar · comercio ·
- Organización y apoyo a los procesos · Apoyo a la actividad familiar ·
- Logística y reparto · Midas ·
- Proyecto de investigación — tesis · UPC · 2026 — en curso
- Análisis de seguridad de la información · Trabajo académico · UPC · 2026
- Automatización de procesos documentales · Proyecto de curso · UPC · 2025
- Groomers · Trabajo final en equipo · UPC · 2025-1 · publicado en 2026
- AlquilaYa · Trabajo final · UPC · 2026
Proyectos y trabajo seleccionados
- Galería Midas: Identifiqué el problema durante mi trabajo en logística, transcribí el plano y desarrollé la aplicación. Contrasté los datos con las fotografías del documento original.
- AlquilaYa: Responsable del backend: API REST, modelo de dominio, reglas de negocio, persistencia y seguridad. Autor de la integración entre frontend y backend y del endurecimiento de seguridad de esta versión, con asistencia de Claude.
- Gap analysis ISO/IEC 27001: Uno de los seis autores del informe y de la matriz.
Herramientas y áreas
- Backend: Java, Spring Boot, NestJS, Python, Flask, C#
- Frontend: TypeScript, Vue, PrimeVue, Next.js, React, Tailwind CSS, HTML / CSS, JavaScript
- Datos y análisis: PostgreSQL, Prisma, SQLite, SQL Server, Excel, Fundamentos de ciencia de datos, Analítica de cadena de suministro
- Desarrollo asistido por IA: Claude, Codex, Antigravity
- Seguridad de la información: ISO/IEC 27001:2022, ISO/IEC 27002:2022, NIST CSF 2.0, Gap analysis, Google Cybersecurity
- Arquitectura y procesos: TOGAF, ArchiMate / Archi, BPMN, Bizagi Modeler, Power Automate
- Herramientas y planificación: Git / GitHub, Visual Studio, Microsoft Project, PMBOK 6, EDT
23Con qué trabajopáginas
Estas son las herramientas que he utilizado para desarrollar aplicaciones, organizar procesos y trabajar con datos. En cada ficha cuento para qué las usé y enlazo el proyecto.
Abrir la páginaCódigo y versiones
Para desarrollar las aplicaciones y seguir sus cambios.
- Visual Studio: Desarrollo de Groomers en C#, Windows Forms y .NET Framework.
- Git: Historial y cambios del código de XoraMarket y los proyectos públicos.
- GitHub: Repositorios y automatización de las pruebas de Galería Midas con GitHub Actions.
Procesos y planificación
Para entender cómo se trabaja y organizar una propuesta.
- Microsoft Project: Cronograma y dependencias del plan académico CETPRO Inclusivo.
- Archi: Modelos de negocio, aplicaciones y tecnología para la propuesta de arquitectura de una MYPE.
- Bizagi Modeler: Diagramas BPMN de los procesos de pedidos e inventario de la MYPE.
- Excel: Matriz de 93 controles del análisis académico de brechas ISO/IEC 27001.
Datos y automatización
Para organizar la información y conectar tareas.
- PostgreSQL: Datos de alquileres en AlquilaYa y ventas e inventario en VentaFlow.
- SQLite: Base de XoraMarket para productos, ventas y usuarios.
- SQL Server: Almacenamiento de los datos de Groomers, conectado a la aplicación con Entity Framework.
- Power Automate: Dos flujos académicos: solicitud de reposición y aprobación de compra, probados en Microsoft 365.
Asistencia de IA
Apoyo para desarrollar y revisar; en cada proyecto explico su alcance.
- Claude Code: Asistencia para desarrollar, revisar código y coordinar cambios del portafolio. Claude también participa en VentaFlow, XoraMarket y Galería Midas.
- Codex: Apoyo en el desarrollo y revisión de Galería Midas y de este portafolio.
- Antigravity: Agente de desarrollo utilizado para construir TuneDrop.
Diseño y comunicación
Para explorar una interfaz y contar cómo funciona.
- Figma: Mockups de Groomers y referencias visuales para este portafolio.
- Canva: Material de presentación del proyecto académico Groomers.
Pruebas y publicación
Para comprobar lo construido y ponerlo al alcance de otros.
- Vercel: Publicación de Galería Midas, la interfaz de VentaFlow y este portafolio.
- Render: Despliegue de la API y la base de datos de VentaFlow.
- Playwright: Recorridos, interacción y capturas del portafolio en escritorio y móvil contra un servidor local.
- Vitest: Pruebas automatizadas de la lógica y los motores del portafolio.
- Lighthouse: Mediciones locales de rendimiento y accesibilidad como parte de la revisión.
24Donde guardo mis otras vidaspáginas
Un lugar para las cosas que me acompañan fuera de los proyectos: mis gatos, la música, los juegos y algunas fotos.
Abrir la páginaTommy
El siamés de casa.
También en casa
Mi gato gris.
Un domingo fuera
Marzo de 2026.
Lo que escucho
Salsa y bachata. Marc Anthony y Luis Miguel.
Una frase que guardo
Los errores nos guían, no nos definen.
Mis partidas
Marvel Rivals · Valorant
Más adelante
Quiero estudiar Veterinaria después de Sistemas.
Películas
Mi lista en Letterboxd ↗
25Privacidadpáginas
Puedes recorrer mis proyectos sin crear una cuenta.
Abrir la páginaEn tu navegador
El tema, el sonido que activas, los logros y el progreso de los juegos se guardan en este dispositivo. Puedes eliminarlos borrando los datos de este sitio en tu navegador. El sonido empieza apagado.
Paseo de la Fama
Si te inscribes, el nombre que envías y la fecha pueden aparecer públicamente. El registro conserva como máximo 500 entradas y muestra las 100 más recientes. Para limitar abusos se utiliza una huella temporal de la conexión, con una clave privada; no se publica tu dirección IP. El registro no certifica todavía la puntuación ni la victoria.
Cuando me escribes
Puedes preparar el mensaje en tu aplicación de correo o, cuando el servicio está habilitado, enviarlo desde el formulario. En ese caso, Resend recibe tu nombre, correo, mensaje y empresa si la indicas para hacerme llegar el correo. Aceptado no significa entregado. El borrador permanece solo en la memoria de esta página mientras la mantienes abierta; cerrar el panel no lo borra y recargar sí. El portafolio no guarda el contenido en su base ni en registros. Para evitar duplicados y abusos conserva huellas con una clave privada y estados hasta 48 horas; los contadores globales caducan al cerrar el día o mes UTC. Resend y los proveedores de correo aplican sus propias políticas de conservación.
Visitas y rendimiento
En Vercel se cargan Web Analytics y Speed Insights para conocer visitas y rendimiento. El alojamiento procesa las peticiones necesarias para servir las páginas. Esos servicios tienen sus propias políticas de tratamiento de datos.
Contenido externo
Al activar un vídeo del cajón se establece una conexión con YouTube. Los enlaces a GitHub, LinkedIn y otros sitios abren servicios con sus propias políticas.
Pedir una eliminación
Si quieres retirar un nombre del Paseo de la Fama o un mensaje de contacto, escríbeme indicando la entrada o el correo que utilizaste. No hace falta enviar documentos de identidad ni contraseñas.
26Créditospáginas
Un sitio reúne trabajo propio y recursos de otras personas. Aquí queda registrado de dónde viene lo que ves y escuchas.
Abrir la páginaEspacio 3D
- Three.js · three.js authors. Renderizado WebGL de Patio, el mundo explorable del portafolio. Las geometrías, texturas y composiciones del espacio se generan con código propio para este portafolio. MIT. Copyright © 2010–2026 three.js authors.
Tipografías
- Work Sans · Wei Huang y The Work Sans Project Authors. Tipografía de la presentación de entrada, servida desde el propio sitio. SIL Open Font License 1.1
- Manrope · The Manrope Project Authors. Titulares y navegación. SIL Open Font License 1.1
- Inter · The Inter Project Authors. Lectura y textos de interfaz. SIL Open Font License 1.1
- Bodoni Moda · The Bodoni Moda Project Authors. Composición editorial, en redonda y cursiva. SIL Open Font License 1.1
- JetBrains Mono · The JetBrains Mono Project Authors. Etiquetas, cifras y elementos monoespaciados. SIL Open Font License 1.1
- Pixelify Sans · The Pixelify Sans Project Authors. Titulares del mundo Nyan. SIL Open Font License 1.1
Iconos e identidad
- Simple Icons · Simple Icons contributors. Logotipos de tecnologías en una tinta y versiones de 16 × 16 píxeles preparadas para Nyan. CC0 1.0
- SVG Logos · Gil Barbara y colaboradores. Iconos de Git, PostgreSQL y Claude en Con qué trabajo, distribuidos mediante Iconify. Sin cambios en sus trazados. CC0 1.0
- vscode-icons · Roberto Huertas y colaboradores. Icono de Excel, distribuido mediante Iconify. Sin cambios en su trazado. MIT
- selfh.st Icons · selfh.st. Icono de Microsoft Power Automate, distribuido mediante Iconify. Sin cambios en su trazado. Creative Commons Attribution 4.0
- Universidad Peruana de Ciencias Aplicadas · UPC. Logotipo utilizado para identificar mi formación. Archivo sin modificaciones, procedente de Wikimedia Commons. PD-textlogo según la ficha de Commons; la marca pertenece a UPC.
Fotografías e ilustraciones
- Jardín botánico de Día y Noche · Imágenes generadas con ImageGen, bajo la dirección de Juan Torres. Amapolas rojas (Papaver rhoeas) y acianos azules (Centaurea cyanus) para Día; girasoles (Helianthus annuus) para Noche. Quince piezas individuales: tres ángulos de flor abierta, capullo y tallo con hojas por especie. WebP transparentes, sin atlas. No son fotografías del archivo personal. Generadas para este portafolio. Prompts, PNG originales y revisión en capturas/ronda-octubre/flores; catálogo en src/data/assets.ts.
- Estudiar Sistemas · UPC · Ilustración generada por IA con ImageGen. Collage conceptual de libros, aulas imaginadas y diagramas para acompañar el ingreso a la universidad. No representa el campus real. Archivo: upc-ia.webp; el logotipo de UPC conserva su procedencia original. Generada para el portafolio; prompt en docs/referencias/trayectoria-2026.md.
- Recuerdos escolares · Trayectoria · Ilustraciones generadas por IA con ImageGen. Cuatro collages conceptuales para José del Carmen Marín Arista, República de Panamá, Alfonso Ugarte y Saco Oliveros. No representan los edificios reales ni son fotografías. Archivos: marin-ia.webp, panama-ia.webp, ugarte-ia.webp y saco-ia.webp. Generadas para este portafolio; prompts y referencias en docs/referencias/trayectoria-2026.md.
- Gemelo urbano · Trayectoria · Ilustración generada por IA con ImageGen, bajo la dirección de Juan Torres. Diorama conceptual de una ciudad y el agua para acompañar la investigación en curso. No representa resultados científicos ni una captura de una aplicación. Archivo: trayectoria-gemelo-urbano-ia.webp. Generada para este portafolio; prompt y preparación en docs/referencias/sobre-mi-2026.md.
- Archivo personal · Juan Torres. Retratos, fotos y vídeos propios del archivo personal y de los gatos. Las capturas de proyectos corresponden a los trabajos publicados. Material aportado para este portafolio.
- Arte del sitio · Dirección de Juan Torres, con generación de imágenes asistida por IA. Ilustraciones, fondos y hojas de sprites registrados en el catálogo de arte. Las imágenes decorativas se distinguen de las fotos y capturas reales. Producción para este portafolio; no se atribuye una licencia abierta a personajes de terceros.
- Gatos del pie y arte anterior de Nyan · Dirección de Juan Torres, con imágenes generadas mediante ImageGen. Girasol de píxeles y arcoíris conservado como recurso de Nyan, ilustrado con IA. Seis láminas nuevas aportan 48 cuadros del siamés y 48 de la azul ruso; cada gato conserva tres poses anteriores. El suelo conserva su arte anterior. Las posiciones y los gestos se animan mediante código; no son fotografías del archivo personal. Imágenes creadas para este portafolio. Prompts, archivos y preparación en docs/referencias/trayectoria-2026.md.
- Objetos de los proyectos · Dirección de Juan Torres, con imágenes generadas mediante ImageGen. Recortes de aspecto fotográfico vinculados a reparto, crianza, comercio, música, alquileres, atención veterinaria, seguridad, sublimación y formación técnica. Acompañan el relato junto a símbolos gráficos; las capturas de las aplicaciones conservan su procedencia original. Recursos generados para este portafolio; prompts y archivos registrados en la documentación del proyecto.
- Juan como jugador · Dirección de Juan Torres, dibujo en código con asistencia de Codex. Personaje original del tema Nyan y de la presentación: cabello negro, chaqueta y un gato compañero. Ilustración SVG con formas de píxeles. Ilustración creada para este portafolio.
- Gatos y Nyan sombrío · Dibujos creados para el portafolio con asistencia de Codex. SVG originales para el cursor, la lluvia de gatos y el jefe. Geometría escrita en código, con transparencia, sin reutilizar los PNG antiguos. Dibujos de esta implementación; las referencias de personajes se acreditan por separado.
- Certificados de formación · Google, IBM, Rutgers y British Council. Diecinueve documentos aportados por Juan, con imágenes de consulta y PDF descargable. Los nombres y marcas identifican a las entidades emisoras. Documentos publicados por indicación de su titular; no se ofrecen bajo una licencia abierta.
- Identidad de los proyectos · Dirección de Juan Torres, con generación de imágenes asistida por IA. Siete símbolos raster generados individualmente con image_gen y guardados como WebP transparentes: Midas, Hermanos Torres, XoraMarket, TuneDrop, VentaFlow, AlquilaYa y Groomers. Los nombres y las descripciones se muestran como texto HTML. Imágenes generadas para la presentación de estos proyectos en el portafolio.
Collage de la portada
- Gatos, manos y avión de la portada · Dirección de Juan Torres, con generación de imágenes asistida por IA. Recortes originales: gatitos con teléfono y patineta, gatito piloto, gatito con lentes escribiendo a máquina, gatito que señala el contacto, manos con cartel y mano que señala. Animación localizada en cabeza, cola, párpados o patitas, conservando el tamaño y la estabilidad de los cuerpos y objetos. Imágenes generadas para este portafolio; no son fotografías del archivo personal.
- Explosion, Fire, Boom · Placidplace. Explosiones de fuego de la última parte de la presentación. Los 97 fotogramas del GIF original de Pixabay se empaquetan en un atlas WebP, con reproducción sincronizada con la patineta y una versión estática para movimiento reducido. Pixabay Content License. Integrado en la composición del sitio; no se ofrece como recurso independiente.
- Gatito que saluda · Dirección de Juan Torres, con generación de imágenes asistida por IA. Gatito sentado que mueve suavemente la cabeza y la cola, además de saludar con una antepata. El cuerpo conserva su tamaño y posición; la animación se detiene con movimiento reducido o al pausar. Imagen y animación creadas para este portafolio.
Música y sonido
- Música de los juegos e instrumento · Composiciones de esta implementación, con asistencia de IA. Partituras de Nyan Paint y Órbita, efectos sintetizados de Rebote, ambiente Nyan, cuerda interactiva y secuenciador pentatónico. Se interpretan con Web Audio; no incorporan grabaciones ni muestras de canciones comerciales. Código y partituras creados para el portafolio.
- Gato UIA · Recurso audiovisual aportado por Juan. Vídeo con su audio y un póster derivado. Juan confirmó la autorización para este uso el 5 de octubre de 2026. Uso autorizado para este portafolio; no se ofrece como obra propia ni con licencia libre para terceros.
Referencias y personajes
- Mundos explorables · Referencias: Bruno Simon, Abeto y Lusion. Referencias de interacción y dirección de arte para Patio. El gatito, los escenarios y su código se construyeron para este portafolio. Referencias de diseño; no se reutilizaron modelos, arte, música ni código de estos estudios.
- Interruptor de sonido · Referencia: Nicolas Jesenberger / Uiverse. Adaptación conceptual del interruptor físico a un mando que se convierte en ecualizador. Implementación propia con estados accesibles y colores de los tres temas vigentes. Referencia publicada bajo MIT; aviso conservado.
- Nyan Cat · Chris «PRGuitarman» Torres. Referencia del personaje y del mundo Nyan. Los dibujos en código y SVG del sitio son representaciones de esta implementación. Los derechos del personaje pertenecen a su titular. Esta atribución no afirma una licencia del personaje.
- Mochi y Lucerna · Personajes originales del portafolio, con asistencia de Codex. Gato rescatista, dron, animales, sprites, retratos y fondos dibujados por código. Diseño y código creados para este portafolio.
- Entrada editorial · Referencia: Coleman — getcoleman.com. Inspiración para graduar el tono de la presentación. La composición, el contenido y las imágenes se adaptaron al portafolio de Juan. Referencia de diseño; no se reutilizaron sus imágenes ni su código.
- Presentación sin retrato · Referencias: Brittany Chiang y Bruno Simon. Inspiración para presentar identidad y experiencia mediante tipografía, contenido e interacción. La composición Personas, Procesos y Tecnología es propia de este portafolio. Referencias de diseño; no se reutilizaron sus imágenes, textos ni código.