# Alvaro Gabriel Gomez

alvarogabrielgomez, Senior Full-Cycle Engineer, Tech Lead y UX Designer · Full-stack en React, Flutter, NestJS y .NET · Identidad, redes P2P, sync offline y agentes de IA, del discovery a producción

- Español nativo · Portugués fluido · Inglés avanzado (profesional) · Entrega internacional en LATAM y Europa
- São Paulo · Brasil · alvaro+work@accentiostudios.com
- LinkedIn: https://www.linkedin.com/in/alvarogabrielgomez/
- GitHub: https://github.com/alvarogabrielgomez
- Sitio: https://alvaro.accentio.dev/?locale=es
- Actualizado: 3 de octubre de 2026

## TL;DR

- **Identidad**: Construí GK One Identity, el inicio de sesión único de las apps de un banco jamaiquino: el servidor OAuth 2.1 en .NET 10 y el login en Next.js + React 19.
- **Flutter**: Hice el login con Entra ID y biometría, el launcher de apps de GK ID y la Home V2 en la app del mismo banco, con más de 1.600 commits desde 2021. En Accentio construí los mapas GPS en vivo de Arka con su editor de geocercas y las lecciones gamificadas de chino de El Camino del Dragón.
- **Redes**: Construí solo Kanpachi, una LAN privada para jugar con amigos a partir de un código de invitación, sin abrir puertos en el router: el daemon en Go, un motor en Rust sobre EasyTier y el cliente de Windows en Flutter.
- **Offline**: Hice que Bohemian Gym guarde cada serie en el dispositivo y recupere la sesión desde un snapshot cuando el teléfono se apaga a mitad del entrenamiento.
- **Research**: Lideré el research y el rediseño con Lean UX del software farmacéutico de Easi: cada tarea pasó a tomar 30% menos tiempo.
- **IA agéntica**: Construí EXA Home, un asistente de voz con wake word local que controla Home Assistant: agentes con memoria compartida, servidores MCP propios y routing de LLMs.
- **+8 años**: llevando software full-cycle del discovery a producción en React, Flutter, NestJS, .NET, Go y dispositivos edge.

## Resumen

Alvaro Gabriel Gomez es ingeniero full-cycle senior, con más de 8 años construyendo productos de software completos y operándolos en producción. Cubre el ciclo entero: discovery y UX, arquitectura, desarrollo full-stack (frontend en React / Next.js, mobile en Flutter, backend en NestJS y .NET), pruebas automatizadas, CI/CD, infraestructura como código, release y operación. Entrega productos enteros como desarrollador único, y dirige equipos pequeños como tech lead cuando el proyecto lo pide.

Para un banco jamaiquino construyó GK One Identity, su single sign-on: login y portal de cuenta en Next.js + React 19, un admin en React y un servidor OAuth 2.1 / OpenID Connect en .NET 10. Construyó Kanpachi solo: una LAN virtual privada con cliente Windows en Go y Flutter, motor de red en Rust y seed Linux, con instalador, catálogo de juegos y releases publicadas. Lidera equipos de Accentio en productos EdTech y fitness, y entregó para equipos en LATAM y Europa, con experiencia comprobable en fintech, telemetría IoT, EdTech y automatización asistida por IA.

## Experiencia

### Founder, Tech Lead y UX Designer · Accentio Studios

Febrero 2021 – Presente · Internacional

Stack: React, Next.js, TypeScript, Flutter, Dart, NestJS, .NET 10, C#, Go, Rust, Prisma, MongoDB, PostgreSQL, Azure, AWS, Terraform, Docker, OAuth 2.1 / OIDC, Claude Code, MCP

- **Fundador de Accentio Studios**: Fundé Accentio Studios y la opero completa: producto, ingeniería, diseño y operaciones. Lidero el equipo, que parte de 3 personas (fundador, cofundador y un dev) y llega a 5 en contratos de cliente como El Camino del Dragón y Easi.
  - Impacto: 5 países atendidos, +4 años al frente como fundador
  - Palabras clave: Producto, Ingeniería, Liderazgo
- **Full-cycle, del discovery a producción**: Me hago cargo del ciclo completo en los productos y clientes de Accentio: discovery con Lean UX en Figma, código full-stack en React, Flutter, NestJS y .NET, pruebas automatizadas, Terraform en AWS y Azure, pipelines de GitHub Actions y Fastlane, trazas con OpenTelemetry y las correcciones después del lanzamiento, como una fuga de memoria de 346 MB en el daemon de producción de Kanpachi.
  - Impacto: 6 etapas a mi cargo de punta a punta: discovery, diseño, desarrollo, pruebas, deploy y operación
  - Palabras clave: Full-cycle, CI/CD, Terraform, OpenTelemetry
- **Contratos pagados en 5 países**: Sostengo los ingresos y el alcance de Accentio con contratos pagados en 5 países (Jamaica, Brasil, Panamá, España, Chile), en banca, telemetría IoT, EdTech, sistemas enterprise y mobile.
  - Impacto: 5 países, 6+ contratos pagados desde 2021
  - Palabras clave: Banca, IoT, EdTech
- **Portafolio en 4 verticales**: Construí el portafolio de productos Accentio y lo mantengo en SaaS, IA, fitness y EdTech. Las etapas van de producción a MVP tardío y desarrollo activo, y priorizo cada producto por qué tan cerca está de convertir comercialmente.
  - Impacto: 5 líneas de producto en 4 verticales
  - Palabras clave: SaaS, IA, Fitness, EdTech
- **Front ends React para 4 apps**: Construí front ends en React para clientes y productos propios: GK One Identity para un banco jamaiquino (login y portal de cuenta en Next.js 15 + React 19, admin en Next.js + MUI), Dash (React 19 + React Router 7 + Vite) y el sitio de Accentio Studios (Next.js 16 + React Three Fiber).
  - Impacto: 4 apps React; solo el login de GKID suma 96 archivos de test unitario con 1.122 casos y 6 specs e2e con Playwright
  - Palabras clave: Next.js, React 19, MUI, Playwright
- **Tests E2E guiados por IA**: Instrumenté las apps Flutter de Bohemian Gym y El Camino del Dragón con Marionette para que Claude Code las maneje por MCP en checks end-to-end, y planifiqué el trabajo en 22 planes de implementación con Claude Code, 12 de ellos con el test primero.
  - Impacto: Corridas end-to-end guiadas por un agente en 2 apps Flutter; 22 planes con cerca de 1.470 pasos
  - Palabras clave: Marionette, MCP, Claude Code, Flutter
- **Estilo Flutter como skill**: Codifiqué el estilo Flutter de Accentio como un skill de Claude Code (accentio-flutter-practices): Clean Dart por feature con Cubit, DI con get_it, un stack Dio con refresh de token single-flight, go_router y un design system por tokens con candados de test.
  - Impacto: 1.626 líneas y 30 templates Dart, aplicados en Bohemian Gym y Kanpachi
  - Palabras clave: Flutter, Cubit, get_it, go_router
- **Un stack para todo el portafolio**: Unifiqué el stack de ingeniería de todo el portafolio en una sola arquitectura modular (React, Next.js, Flutter, NestJS, Prisma, Azure, AWS, MongoDB, PostgreSQL, Stripe, OAuth2 / OIDC, Vitest), y con eso reuso código entre productos y entrego con patrones consistentes.
  - Impacto: 10+ tecnologías integradas, 1 stack unificado en 5 líneas de producto
  - Palabras clave: NestJS, Prisma, Azure, AWS
- **Stack de IA para entregar solo**: Trabajo solo a velocidad de equipo pequeño con un stack interno de ingeniería asistida por IA que acorta el camino de idea a deploy en todas las líneas de producto (Anthropic Claude, Claude Code, GitHub Copilot, servidores MCP propios, OpenClaw, Ollama).
  - Palabras clave: Claude Code, Copilot, MCP, Ollama
- **Un patrón de agentes, edge y cloud**: Diseñé un solo patrón de orquestación multi-agente y lo reuso en EXA edge (Raspberry Pi) y EXA for Business (cloud): agente principal con sub-agentes, memoria compartida, routing inteligente de LLMs y Notion como capa human-in-the-loop. Así no mantengo dos infraestructuras agénticas.
  - Impacto: 1 patrón de orquestación sirve a 2 líneas de producto (edge + cloud)
  - Palabras clave: Multi-agente, Routing de LLMs, Raspberry Pi, Notion

### Desarrollador Full-Stack y UX Designer · Erictech

Julio 2024 – Octubre 2024 · Brasil · Contratista, facturando a través de Accentio Studios

Stack: Flutter, Dart, Go, Node.js, MQTT, PostgreSQL, Azure, Linux, Figma

- **App Quick Command para rastreadores**: Entregué Quick Command, una app Flutter mobile con comandos precargados, recepción de ACK e hilos de configuración por equipo. Sacó del medio el proceso de buscar en la documentación del fabricante y escribir a mano los SMS que configuran los rastreadores.
  - Impacto: App completa entregada en 4 meses como único ingeniero en Brasil (equipo Erictech coordinado desde España, máximo 2 devs)
  - Palabras clave: Flutter, IoT, Mobile
- **Backend Go para rastreo vehicular**: Reforcé el sistema productivo de rastreo de vehículos y activos de Erictech con mejoras backend en Go, integradas con dispositivos Ruptela y Teltonika sobre MQTT y flujos orientados a eventos.
  - Impacto: Mejoras entregadas en producción al sistema de rastreo
  - Palabras clave: Go, MQTT, Teltonika, Ruptela
- **Rollout enterprise y migración de datos**: Sostuve la migración masiva de datos que destrabó el rollout del sistema en un cliente enterprise grande, y aporté hallazgos de UX que el equipo interno implementó después.
  - Impacto: Miles de usuarios, equipos y vehículos migrados al nuevo sistema
  - Palabras clave: Migración de datos, UX
- **Puente entre España y Brasil**: Hice de puente entre la casa matriz de Erictech en España, de donde venía cada requerimiento, y su pequeña división brasileña, como hispanohablante nativo radicado en Brasil.
  - Palabras clave: Español, Equipos internacionales

### Flutter Developer · The Bridge Social

Agosto 2021 – Febrero 2023 · Chile · Contratista, facturando a través de Accentio Studios

Stack: Flutter, Dart, .NET, C#, Firebase, REST APIs

- **Features bancarias y fintech**: Entregué features bancarias y fintech para clientes internacionales como contratista de The Bridge Social, consultora chilena, facturando a través de Accentio Studios. Uno de esos clientes fue el banco jamaiquino de GKONE: cuando terminó ese contrato, el banco contrató directo a Accentio Studios. Trabajé Flutter mobile y backend .NET bajo design systems compartidos con los equipos de UI / UX.
  - Impacto: 1.5 años de permanencia; un cliente bancario convertido en contrato directo y continuo
  - Palabras clave: Flutter, .NET, Banca, Design systems
- **Integración backend y Firebase**: Sostuve la entrega productiva de features mobile en varios contratos de cliente, con integración de servicios backend y flujos Firebase.
  - Palabras clave: Firebase, APIs REST, Flutter

### Desarrollador .NET · Tata Consultancy Services

Noviembre 2020 – Febrero 2022 · Brasil · Empleado CLT, asignado a Itaú

Stack: .NET Core, C#, Angular, TypeScript, Azure, SQL Server

- **Herramientas de debug en Itaú**: Construí herramientas internas de debug estilo Postman que atraviesan los límites de seguridad interna y las conexiones de la intranet de Itaú, y aceleraron el debugging del equipo de renta fija en varios subsistemas.
  - Impacto: Ciclo de debug acelerado para el equipo Agile de renta fija de 20+ personas en Itaú (top-3 banco BR)
  - Palabras clave: C#, .NET, Herramientas internas
- **Migración a .NET Core**: Migré el stack .NET a .NET Core y actualicé las versiones del framework Angular en los sistemas bancarios productivos de Itaú, y bajé la deuda heredada.
  - Impacto: Renovación del stack heredado en sistemas productivos de renta fija de Itaú
  - Palabras clave: .NET Core, Angular, Migración legacy
- **Equipo de renta fija de Itaú**: Estuve embebido 1.3 años en el equipo de renta fija de Itaú via Tata Consultancy Services, como consultor full-stack en .NET Core, Angular, Azure y SQL Server.
  - Impacto: 1.3 años embebido en un top-3 banco BR via outsourcing TCS
  - Palabras clave: .NET Core, Angular, Azure, SQL Server

### Desarrollador Web Full-Stack · TID Software Sistemas Especificos

Febrero 2018 – Noviembre 2020 · Brasil

Stack: .NET, C#, Vue.js, JavaScript, HTML / CSS, Clarion, Flutter

- **De junior a sistemas completos**: Crecí de junior a entregar sistemas completos en el equipo web de TID Software, que escaló de 3 a 5+ devs. Construí solo la plataforma de administración de proyectos y presupuestos de FEALQ, con backend .NET y frontend Vue.js / HTML / CSS.
  - Impacto: Progresión de junior a mid full-stack en 2.5 años, 1 sistema enterprise entregado solo de punta a punta
  - Palabras clave: .NET, C#, Vue.js
- **Software para ArcelorMittal y FEALQ**: Serví a clientes enterprise de automotriz, siderurgia, educación y agricultura (ArcelorMittal, FEALQ, CNA, Fun Motors) con software a medida, y sostuve la migración de sistemas heredados Clarion a un stack web moderno.
  - Impacto: 5+ proyectos completos de cliente entregados, varios clientes enterprise incluyendo ArcelorMittal
  - Palabras clave: .NET, Migración de Clarion, Software a medida
- **Adopción de Flutter en TID**: Impulsé la adopción de Flutter en TID y dejé sembrada la capacidad mobile interna, que creció a nivel empresa después de mi salida.
  - Impacto: 1 adopción de framework sembrada que escaló más allá de mi permanencia
  - Palabras clave: Flutter, Mobile

## Proyectos

### Kanpachi

Iniciativa de producto · 2026 – Presente · Internacional

Etiquetas: Gaming, Redes P2P, Go, Rust, Flutter Desktop, Open source

Kanpachi es una LAN virtual privada para jugar entre amigos: el sucesor espiritual de Hamachi. Un túnel cifrado con WireGuard punto a punto conecta la sala; el adaptador virtual queda cerrado, y abre solo los puertos del juego elegido, solo en el host, solo hacia los miembros presentes. Sin cuentas, sin telemetría, sin reenvío de puertos. Software libre bajo AGPL-3.0, en tres lenguajes: UI en Flutter, binarios y CLI en Go, motor de túneles en Rust.

Logros:

- **LAN virtual privada para jugar**: Construí una LAN virtual privada para jugar entre amigos: túnel cifrado con WireGuard punto a punto, sin cuentas, sin tocar el router.
  - Palabras clave: WireGuard, P2P, Redes
- **Firewall cerrado por defecto por juego**: Implementé la política de firewall cerrada por defecto, que abre solo los puertos del juego elegido, solo en la máquina del host y solo hacia los miembros presentes.
  - Palabras clave: Firewall, Seguridad
- **Daemon de Windows en Go**: Escribí el daemon de Windows en Go, que maneja el adaptador virtual, las reglas de firewall, la API local y la supervisión del motor de red.
  - Palabras clave: Go, Windows Service, Wintun
- **App de escritorio Flutter sin privilegios**: Desarrollé la app de escritorio en Flutter, sin privilegios, que habla con el daemon por named pipe con token.
  - Palabras clave: Flutter Desktop, Named pipe
- **Motor en Rust sobre EasyTier**: Construí kanpachi-engine en Rust, que enlaza EasyTier como librería y deja inalcanzable su portal de administración sin autenticación.
  - Palabras clave: Rust, EasyTier
- **Seed de rendezvous con invitaciones**: Publiqué el seed de rendezvous en Go, con instalador de una línea para Linux, resolución de códigos de invitación y página de invitación servida por el propio binario.
  - Palabras clave: Go, Linux, systemd

Detalles:

- **Tres lenguajes, cuatro binarios**: Repartí el producto en tres lenguajes según lo que cada uno hace mejor: Flutter para la ventana de escritorio, Go para cada binario (cliente, daemon, seed), Rust para el motor de túneles, construido sobre un fork propio de EasyTier fijado por tag en lugar de su binario oficial. Ese binario abre un portal de administración sin autenticación en 0.0.0.0:15888, alcanzable por cualquier proceso local; enlazar la librería deja el portal fuera del build.
  - Impacto: 0 sockets en escucha en el motor, frente a 0.0.0.0:15888 abierto en easytier-core, en 3 lenguajes y 4 binarios (kanpachi, kanpachid, kanpseed, kanpachi-engine)
  - Palabras clave: Flutter, Go, Rust, EasyTier
- **Seguridad sin reglas de permiso**: Diseñé el modelo de seguridad alrededor de un adaptador virtual que nace sin una sola regla de permiso. Cada apertura es explícita, por perfil de juego, hacia las IPs de los miembros presentes, y se recalcula entera cuando alguien entra, sale o cambia de juego.
  - Impacto: El tipo FirewallRule no tiene forma de expresar 'cualquiera'
  - Palabras clave: Firewall, Seguridad
- **Daemon privilegiado separado de la ventana**: Separé el daemon privilegiado de la ventana: el servicio de Windows corre como LocalSystem y sostiene la sala, la app Flutter no tiene privilegios. Cerrar la ventana deja la sala abierta; jugar no vuelve a pedir administrador.
  - Impacto: 1 solo UAC en toda la vida del producto, durante la instalación
  - Palabras clave: Windows Service, UAC
- **Catálogo de perfiles de juego probados**: Armé el catálogo de perfiles de juego en JSON (puertos, descubrimiento LAN, verificación por ejecutable) para que nadie tenga que saber que Project Zomboid habla UDP 16261-16262. Hay puertos, con 445 y 3389 a la cabeza, que ningún perfil puede pedir.
  - Impacto: 11 perfiles de juego probados en partida real
  - Palabras clave: JSON, Perfiles de juego
- **Paquetes para Windows y Debian**: Empaqueté las dos plataformas: instalador Inno Setup para Windows, paquete Debian para Ubuntu 22.04+, unidades systemd y una cuarentena que mantiene cerrados SMB, RDP y administración remota desde internet incluso con Kanpachi detenido.
  - Impacto: Instalador Windows, paquete .deb, 3 workflows de release en GitHub Actions
  - Palabras clave: Inno Setup, Debian, systemd, GitHub Actions
- **Fuga de 346 MB cerrada**: Cacé fugas de memoria en el daemon productivo: cada lectura del store de firewall de Windows dejaba atrás su enumerador con una foto de todas las reglas de la máquina. Seis ciclos de abrir y cerrar sala llevaban el proceso de 80 MB a 426 MB sin retorno.
  - Impacto: 346 MB de fuga en 6 ciclos de sala, cerrada
  - Palabras clave: Go, Windows Firewall API, Fuga de memoria
- **Seis releases tras el lanzamiento**: Seguí publicando después del lanzamiento: de v0.7.0 a v0.7.5 la lista de miembros sobrevive al reinicio del host (que puede seguir expulsando gente), cada miembro muestra su latencia medida y los contenedores redirigen el tráfico a juegos que escuchan en loopback.
  - Impacto: 6 releases y 61 commits después de v0.6.8
  - Palabras clave: Go, Releases

Resultados clave:

- v0.7.5 publicada con instalador Windows y paquete Debian, con 535 commits desde julio de 2026
- Exposición cerrada por defecto: 11 perfiles de juego, reglas recalculadas por miembro presente, cero puertos abiertos en el router
- Motor propio en Rust con 0 sockets en escucha, frente al portal de administración sin autenticación del binario oficial de EasyTier
- Producto entero construido solo en 3 lenguajes, 4 binarios, 2 repositorios: UI en Flutter, cliente/daemon/seed en Go, motor en Rust
- 819 tests en Go y 114 en Flutter cubren el daemon, el seed y la UI de escritorio

Stack: Flutter Desktop, Go, Rust, EasyTier, WireGuard, Wintun, Servicio de Windows, Windows Firewall API, systemd, nftables, Debian, Inno Setup, Docker, GitHub Actions, AGPL-3.0

Página del proyecto: https://alvaro.accentio.dev/projects/kanpachi?locale=es

Enlaces:

- [Sitio de Kanpachi](https://kanpachi.accentio.dev)
- [Código fuente (GitHub)](https://github.com/alvarogabrielgomez/kanpachi)

### Bohemian Gym

Iniciativa de producto · 2024 – Presente · Internacional

Etiquetas: Fitness, Flutter, NestJS, MongoDB, Asistente IA, White-label

Bohemian Gym es una app de entrenamiento para atletas y gimnasios. El atleta arma sus rutinas y la app conduce la sesión mientras ocurre (rounds de combate, campana de descanso con audio ducking, recuperación de sesión, RPE retroactivo) y convierte el historial en recomendaciones de sobrecarga progresiva. Cada gimnasio recibe builds white-label, roles propios y un flujo entrenador-atleta. Sale en 5 flavors de Flutter (atleta, entrenador, manager, consumidor y consola) sobre un core offline-first compartido, con una API NestJS 11 + MongoDB y un asistente con Gemini.

Logros:

- **App de entrenamiento para ejecutar**: Construí una app de operación de entrenamiento que conduce la sesión mientras ocurre.
  - Palabras clave: Flutter, Fitness
- **Constructor de rutinas con superseries**: Implementé el constructor de rutinas con bloques, supersets, timers de descanso y seguimiento por sesión.
  - Palabras clave: Flutter, Cubit
- **Historial de entrenamiento offline-first**: Diseñé el comportamiento offline-first para entrenar sin conectividad y guardar un historial local confiable.
  - Palabras clave: ObjectBox, Offline-first
- **Rutinas compartidas por QR**: Habilité la colaboración entrenador-atleta con rutinas compartidas por QR e importación/exportación versionada.
  - Palabras clave: QR, Importación / exportación
- **Recuperación de la sesión activa**: Agregué recuperación de sesión activa y continuidad guiada por notificaciones durante el entrenamiento.
  - Palabras clave: Notificaciones, Recuperación de sesión
- **API NestJS con asistente Gemini**: Construí la API NestJS + MongoDB con asistente Gemini, login con Google y OpenTelemetry.
  - Palabras clave: NestJS, MongoDB, Gemini, OpenTelemetry
- **App manejable por agentes de IA**: Hice que un agente de IA pueda manejar la app: un binding de Marionette en debug y una config que le enseña al driver los botones del design system, para que Claude Code toque, escriba y lea las pantallas por MCP.
  - Palabras clave: Marionette, MCP, Claude Code
- **Rendimiento desde el diseño**: Diseñé el desempeño desde la primera pantalla: widgets como clases sin métodos helper que devuelvan Widget, 40 rebuilds acotados (buildWhen, BlocSelector, select) y datos locales en ObjectBox, en 30 Cubits.
  - Palabras clave: Flutter, BlocSelector, ObjectBox

Detalles:

- **Sesiones que conduce la app**: Conduzco la sesión de entrenamiento desde la app: rounds de combate con timer de descanso, campana en background con audio ducking y un modelo PendingSet para el seguimiento en curso. Strong, Hevy y Jefit registran cuando el entrenamiento ya pasó.
  - Impacto: Ejecución de la sesión en tiempo real como diferencial frente a apps que son un Excel con UI
  - Palabras clave: Temporizador de descanso, Audio, Flutter
- **Sin datos perdidos al interrumpir**: Recuperé sesiones interrumpidas con snapshot del cubit y restoreFromSnapshot: la sesión no pierde datos y el usuario sigue donde quedó.
  - Impacto: Continuidad sin pérdida de datos ante interrupción, background o crash
  - Palabras clave: Cubit, Snapshot
- **Cinco flavors, white-label por gimnasio**: Sirvo 5 flavors (atleta, entrenador, manager, consumidor y consola) desde un solo monorepo Flutter, con builds white-label por gimnasio (slug del gimnasio mapeado a applicationId / bundle id) y roles que cada gimnasio define con role bindings y audiencias por app.
  - Impacto: 5 flavors desde 1 codebase con builds white-label por gimnasio
  - Palabras clave: Flavors, White-label, Multi-tenant
- **Flujo de invitación coach-atleta**: Habilité la colaboración entrenador-atleta con códigos de invitación y flujo de asignación (aceptar, rechazar, revocar, pendiente), tablero de asignación de rutinas y librería compartida de ejercicios y sistemas.
  - Impacto: Flujo entrenador-atleta entregado sobre códigos de invitación
  - Palabras clave: Códigos de invitación, Coaching
- **Auth y sync endurecidos**: Endurecí la autenticación y la sincronización de datos para producción: hash de password en cliente, rotación de refresh con detección de reuso, backup por snapshot, detección de drift y UI de resolución de conflictos.
  - Impacto: Seguridad de nivel productivo y sync v2 resiliente offline
  - Palabras clave: Rotación de refresh, Resolución de conflictos, Seguridad
- **Asistente de IA endurecido**: Embebí un asistente IA sobre Gemini en la app (Assistant v2) con chat polimórfico, controles de presupuesto y 7 capas de defensa contra prompt injection (0% ASR en el baseline del benchmark Spikee).
  - Impacto: Asistente IA en producto endurecido, tasa de ataque verificada en 0%
  - Palabras clave: Gemini, Prompt injection
- **Motor de sobrecarga progresiva**: Construí la inteligencia de sobrecarga progresiva: rastrea las métricas de levantamiento entre sesiones y recomienda ajustes de peso y repeticiones según el historial de volumen e intensidad. El atleta deja de adivinar.
  - Impacto: Motor de sobrecarga progresiva, ausente en las apps de solo registro
  - Palabras clave: Progresión, Analítica
- **API NestJS 11 sobre MongoDB**: Construí la API en NestJS 11 + MongoDB (Mongoose): login con JWT y con Google, throttling, Swagger, trazas con OpenTelemetry y un asistente Gemini que transmite por SSE con modelos de respaldo y presupuesto de tokens. Se despliega como imagen Docker en bohemian.accentio.dev con Statio, mi propia herramienta de deploy.
  - Impacto: 13 módulos de negocio, 45 archivos spec con cerca de 470 casos Jest, y tests de integración con Supertest y mongodb-memory-server
  - Palabras clave: NestJS, MongoDB, SSE, Jest
- **Marionette en los cinco flavors**: Conecté un binding de Marionette en los builds de debug de los 5 flavors, fuera del release por tree-shaking, y una config que le enseña al driver los componentes del design system, para que un agente MCP lea la etiqueta de cada botón en lugar de un nodo vacío.
  - Impacto: Un agente MCP maneja los 5 flavors en builds de debug
  - Palabras clave: Marionette, MCP
- **Guía de código cerrada con tests**: Escribí la guía de código del proyecto (un CLAUDE.md de 2.300 líneas) y la trabé con 20 tests de arquitectura, como la pureza de imports del design system y el grafo de imports de la consola.
  - Impacto: 20 tests de arquitectura corren con la suite
  - Palabras clave: CLAUDE.md, Tests de arquitectura
- **CI hacia Firebase App Distribution**: Publico la app con GitHub Actions y Fastlane en Firebase App Distribution: la llave de firma sale de GCP Secret Manager por OIDC y el pipeline verifica el firmante del APK.
  - Impacto: Cerca de 1360 casos de test Flutter en 158 archivos
  - Palabras clave: GitHub Actions, Fastlane, OIDC

Resultados clave:

- 5 flavors de Flutter (atleta, entrenador, manager, consumidor, consola) desde un monorepo, persistencia offline-first con ObjectBox y builds white-label por gimnasio
- Audio ducking, campana, recuperación de sesión y registro retroactivo de RPE / fatiga acompañan durante el set; las apps de registro llegan cuando el entrenamiento ya pasó
- Asistente IA v2 con defensa anti-prompt-injection de 7 capas, 0% ASR en el benchmark Spikee
- La inteligencia de sobrecarga progresiva empuja el progreso en el gimnasio, más allá de registrar la sesión
- API NestJS 11 + MongoDB con asistente Gemini, OpenTelemetry y deploys en Docker; cerca de 1800 tests automatizados entre app y API

Stack: Flutter, Dart, BLoC / Cubit, ObjectBox, go_router, Dio, Freezed, NestJS, MongoDB, Mongoose, JWT, Google Sign-In, Gemini API, OpenTelemetry, Docker, GitHub Actions, Fastlane, Firebase App Distribution, White-label, Multi-tenant

Página del proyecto: https://alvaro.accentio.dev/projects/bohemian-gym?locale=es

### Dash + EXA for Business

Accentio Studios · 2024 – Presente · Internacional

Etiquetas: SaaS B2B, React, React Router, NestJS, Prisma, IA agéntica

Dash + EXA for Business es la plataforma B2B con IA que planifica Accentio. Dash es la superficie de control multi-tenant: una app en React 19 + React Router 7 + Vite + TypeScript sobre una API NestJS + Prisma. EXA es el asistente agéntico que corre entre productos Accentio, con routing de LLM agnóstico al proveedor. Está en fase de arquitectura y todavía no genera ingresos.

Logros:

- **Centro de control multi-tenant**: Construí Dash como centro de control multi-tenant para operar soporte, ventas, reportes y operaciones internas desde una sola consola.
  - Palabras clave: SaaS B2B, Multi-tenant
- **dash_ui en React 19**: Construí dash_ui en React 19 + React Router 7 (framework mode) + Vite + TypeScript, con Tailwind, shadcn/Radix, TanStack Table y Recharts en 13 rutas.
  - Palabras clave: React 19, React Router 7, Vite, Tailwind
- **Chat y playground de EXA**: Construí en React el chat de EXA y un playground estilo Gemini, con sidebar animada y un sheet mobile con swipe-back.
  - Palabras clave: React, Framer Motion
- **EXA como capa de ejecución IA**: Desarrollé EXA for Business como capa de ejecución con IA que asiste con flujos guiados, soporte de decisiones y automatización operativa.
  - Palabras clave: IA agéntica, Automatización
- **API NestJS multi-tenant**: Entregué dash_api, el servicio NestJS 11 + Prisma multi-tenant que orquesta CRM, contratos, métricas y analítica con fronteras por tenant.
  - Palabras clave: NestJS, Prisma
- **Módulos activados por tenant**: Diseñé el sistema modular (SAC, SDR, Reports, Helpdesk, Home, Server Ops) con activación y configuración por tenant.
  - Palabras clave: Modular, Multi-tenant
- **Gobernanza human-in-the-loop**: Implementé el gobierno human-in-the-loop: colas de aprobación, umbrales de confianza y trazabilidad para acciones críticas.
  - Palabras clave: Colas de aprobación, Auditoría
- **Routing de LLMs por tarea**: Arquitecté la capa de routing inteligente de LLMs de EXA (Anthropic Claude, OpenAI, Ollama local) para balancear costo, latencia y calidad de razonamiento por clase de tarea.
  - Palabras clave: Claude, OpenAI, Ollama

Detalles:

- **Arquitectura React por feature**: Construí dash_ui en React 19 con React Router 7 en framework mode, Vite, TypeScript, Tailwind 4 y primitivas shadcn/Radix, organizado en clean architecture por feature (dominio, datos y presentación en cada una).
  - Impacto: 13 rutas, 55 componentes propios sobre shadcn/Radix, 74 de 74 commits
  - Palabras clave: React 19, React Router 7, shadcn/ui
- **Configuración conectada a la API**: Conecté el área de configuración (general, seguridad, facturación, EXA) a la API con un patrón repository, autenticación Logto con cache y refresh de tokens, e i18next en inglés, español y portugués.
  - Impacto: 4 áreas de configuración, 3 idiomas
  - Palabras clave: Logto, i18next
- **Chat de EXA con animaciones**: Construí en React el chat de EXA y un playground estilo Gemini, con transiciones de página en Framer Motion, sidebar animada y un sheet mobile con swipe-back.
  - Palabras clave: React, Framer Motion
- **Servicios acotados para escalar**: Separé identidad, suscripciones, orquestación y módulos de negocio en servicios acotados, con límites claros para escalar multi-tenant.
  - Impacto: Límites de servicio claros, listos para escala multi-tenant
  - Palabras clave: Multi-tenant, Arquitectura
- **Activación de módulos componible**: Armé una arquitectura de módulos componibles, para que cada tenant active la estrategia que necesita.
  - Impacto: 6 módulos planificados (SAC, SDR, Reports, Helpdesk, Home, Server Ops) con activación por tenant
  - Palabras clave: Modular, Multi-tenant
- **Analítica operativa**: Expuse analítica del rendimiento operativo: volumen procesado, SLA, conversión y confiabilidad.
  - Palabras clave: Analítica, Recharts
- **Modo seguro y rollback**: Protegí la confiabilidad de las automatizaciones antes del rollout productivo con modos de seguridad y rollback.
  - Palabras clave: Automatización, Confiabilidad

Resultados clave:

- Plataforma en fase de arquitectura: front en React 19 + React Router 7 + Vite y API multi-tenant NestJS 11 + Prisma, lista para onboarding de tenants
- EXA diseñado como capa agéntica ambiente entre productos Accentio, con routing de LLM agnóstico al proveedor (Anthropic Claude / OpenAI / Ollama)
- Todavía sin ingresos, en fase de visión para la integración B2B

Stack: React, React Router, Vite, TypeScript, Tailwind, shadcn/ui, Radix UI, TanStack Table, Recharts, Framer Motion, Logto, i18next, NestJS, Prisma, Socket.IO, Docker, GitHub Actions, Azure Blob, Stripe

Página del proyecto: https://alvaro.accentio.dev/projects/dash-exa-business?locale=es

### Arka

Accentio Studios · 2024 – Presente · Internacional

Etiquetas: EdTech, Geolocalización, Flutter, NestJS, WebSocket, Azure

Arka es una plataforma educativa gamificada geoespacial que convierte actividades de campo en sesiones de aprendizaje medibles, combinando misiones por ubicación, competencia en vivo y evaluación asistida por IA.

Logros:

- **Plataforma de aprendizaje geoespacial**: Desarrollé una plataforma educativa geoespacial donde los equipos recorren rutas reales y desbloquean misiones por checkpoints GPS.
  - Palabras clave: Flutter, GPS
- **Motor de desafíos con evaluación IA**: Implementé un motor de retos (texto, matemática, foto e información contextual) con evaluación asistida por IA y feedback inmediato.
  - Palabras clave: Evaluación con IA, OpenRouter
- **Dashboards de facilitador y admin**: Construí paneles para facilitadores y administradores, para crear rutas, configurar misiones y monitorear equipos en tiempo real.
  - Palabras clave: Flutter, Tiempo real
- **Competencia en vivo**: Implementé el flujo de competencia en vivo con invitaciones, control de sesión, ranking y analítica posterior.
  - Palabras clave: Socket.IO, Leaderboard
- **Arquitectura de producción**: Entregué la arquitectura productiva: apps Flutter por flavor, APIs NestJS, eventos WebSocket e infraestructura Azure.
  - Palabras clave: Flutter, NestJS, Azure

Detalles:

- **Constructor de misiones con checkpoints GPS**: Construí un editor de misiones con reglas de radio GPS y validaciones por etapa, para que el facilitador arme sesiones de aprendizaje jugables.
  - Impacto: 4 tipos de reto (texto, matemática, foto, contextual) con puntuación asistida por IA
  - Palabras clave: GPS, Geocercas
- **Ciclo de la sesión en vivo**: Implementé el ciclo completo de sesión, del lobby a la partida activa, el cierre y la exportación de resultados.
  - Impacto: Flujo completo de competencia en vivo entregado para el MVP
  - Palabras clave: Socket.IO, Tiempo real
- **Desafíos con evidencia fotográfica**: Agregué carga de evidencia multimedia con validación, que vuelve accionables los retos con foto.
  - Palabras clave: Carga de medios
- **Tres roles, una app Flutter**: Serví tres experiencias distintas (admin, facilitador y participante) desde una sola app Flutter, con control de acceso por rol y flavors.
  - Impacto: 3 roles con UX propia desde una sola app Flutter
  - Palabras clave: Flutter, RBAC
- **Telemetría y moderación en campo**: Estabilicé la operación en campo con telemetría integrada y herramientas de moderación.
  - Palabras clave: Telemetría, Moderación
- **Configuración multi-tenant**: Preparé el producto para escalar con configuración multi-tenant y despliegues por ambiente.
  - Palabras clave: Multi-tenant, Azure

Resultados clave:

- MVP entregado de punta a punta (Flutter + NestJS + Azure) y listo para pilotos en etapa seed
- Competencia WebSocket en tiempo real con validación GPS de checkpoints en 4 tipos de reto

Stack: Flutter, Dart, NestJS, MongoDB, Socket.IO, Azure, Terraform, GitHub Actions, OpenRouter, Foundry

Página del proyecto: https://alvaro.accentio.dev/projects/arka?locale=es

### Accentio Accounts

Accentio Studios · 2023 – Presente · Internacional

Etiquetas: Identidad, OAuth2 / OIDC, NestJS, Nuxt, Flutter

Accentio Accounts es la plataforma comercial de identidad propia de Accentio: un IdP in-house con OAuth2 / OIDC, RBAC, integración con terceros y pantallas de consentimiento, unificado en todos los productos Accentio y conectado a la gestión de suscripciones via Accentio Subscription API.

Logros:

- **Una identidad entre productos**: Unifiqué las cuentas entre productos Accentio en un solo ciclo de vida de identidad.
  - Palabras clave: SSO, Identidad
- **OAuth2 / OIDC con RBAC**: Implementé autenticación y autorización con OAuth2/OIDC, RBAC, JWT y manejo seguro de tokens.
  - Palabras clave: OAuth2, OIDC, RBAC, JWT
- **Cuentas ligadas a suscripciones**: Conecté cuentas y suscripciones via Accentio Subscription API para las operaciones comerciales.
  - Palabras clave: Subscription API
- **Matrices de roles por tenant**: Definí matrices de roles RBAC por tenant y flujos de gobierno administrativo entre varios productos Accentio.
  - Palabras clave: RBAC, Multi-tenant
- **Ciclo de vida de tokens**: Implementé controles de ciclo de vida del token con refresh, rotación y revocación para sesiones más seguras.
  - Palabras clave: JWT, Refresh tokens, Revocación
- **Onboarding y sync de permisos**: Estandaricé el onboarding, la sincronización de permisos y el aprovisionamiento de acceso entre identidad y suscripciones.
  - Palabras clave: Aprovisionamiento

Detalles:

- **Cuentas unificadas entre productos**: Unifiqué las cuentas entre productos, y ahora una sola identidad mueve al usuario por todo Accentio.
  - Impacto: Integrado en 5+ productos Accentio internos (Dash, EXA, Arka, Bohemian Gym, EXA Home Kiosko)
  - Palabras clave: SSO, Identidad
- **Proveedor de identidad propio**: Construí un IdP propio con OAuth2 / OIDC, RBAC, integración con terceros y pantallas de consentimiento, con paridad de features frente a las ofertas comerciales. Cortó la dependencia de un proveedor de identidad externo.
  - Impacto: Capacidad IdP completa propia, sin proveedor externo
  - Palabras clave: OAuth2, OIDC, Consentimiento
- **APIs de cuenta alineadas con RBAC**: Alineé las APIs de cuentas, roles y permisos con los límites de política RBAC.
  - Palabras clave: RBAC, NestJS
- **Acceso ligado a la facturación**: Vinculé el control de acceso al billing, integrando los eventos de ciclo de vida de la suscripción con Accentio Subscription API.
  - Palabras clave: Subscription API, Facturación

Resultados clave:

- IdP propio en producción: OAuth2 / OIDC + RBAC + pantallas de consentimiento + integración con terceros
- Integrado en 5+ productos Accentio internos como capa de identidad unificada

Stack: Flutter, Nuxt, Vue, NestJS, JWT, OAuth2, OIDC, RBAC, Subscription API, Secure Storage, GitHub Actions

Página del proyecto: https://alvaro.accentio.dev/projects/accentio-accounts?locale=es

### Accentio EXA Home, Kiosko

Accentio Studios · 2024 – Presente · Edge (Raspberry Pi)

Etiquetas: IA en edge, Raspberry Pi, Multi-agente, MCP, Home Assistant

EXA Home, Kiosko es un proyecto personal DIY de IA en edge (Raspberry Pi, pantalla táctil, UI Flutter Pi y carcasa impresa en 3D diseñada en Fusion 360) que reemplaza a Alexa / Google Home con un asistente de hogar de propiedad propia. También valida a EXA como cerebro agéntico de punta a punta, integrado con Home Assistant, servidores MCP propios para la auto-gestión del contenedor, orquestación multi-agente y Notion como superficie human-in-the-loop.

Logros:

- **Asistente de voz en Raspberry Pi**: Construí un asistente con voz y pantalla táctil sobre Raspberry Pi (UX tipo Alexa), integrado con Home Assistant para controlar la casa por lenguaje natural.
  - Palabras clave: Raspberry Pi, Home Assistant, Voz
- **Servidores MCP para autogestión**: Diseñé servidores MCP (Model Context Protocol) propios que le dan al agente auto-gestión de su contenedor Docker en la Pi (logs, restart, deploy, health) via OpenClaw.
  - Palabras clave: MCP, Docker, OpenClaw
- **Routing de LLMs por peso**: Implementé routing inteligente de LLMs: modelos pequeños en edge para tareas livianas, modelos cloud (Anthropic Claude, OpenAI) para razonamiento pesado. Baja costo y latencia.
  - Palabras clave: Claude, OpenAI, Ollama
- **Agente principal con sub-agentes**: Arquitecté un sistema multi-agente donde un agente principal genera sub-agentes por tarea, y esos sub-agentes ejecutan, actualizan progreso y cierran el trabajo solos.
  - Palabras clave: Multi-agente
- **Memoria compartida entre agentes**: Construí la capa de memoria compartida entre agentes con grafo de tareas, sincronización de estado y canales de mensajes para coordinar sub-agentes.
  - Palabras clave: Memoria compartida, Grafo de tareas
- **Notion como human-in-the-loop**: Conecté la API de Notion como superficie human-in-the-loop en vivo, donde un humano ve el backlog del agente en tiempo real, audita el trabajo y asigna tareas nuevas a mano.
  - Palabras clave: Notion API, Human-in-the-loop
- **Wake word y VAD locales**: Entrené y desplegué modelos ML en edge (wake word, VAD) para escucha local always-on, sin viaje al cloud para activar.
  - Palabras clave: Edge ML, OpenWakeWord
- **Pipeline de voz multimodal**: Entregué la experiencia multimodal en edge con UI Flutter Pi y pipeline de voz (wake word, VAD, STT, orquestación de agente, parseo emocional, TTS).
  - Palabras clave: Flutter Pi, faster-whisper, TTS
- **Operación desatendida 24/7**: Operacionalicé servicios systemd, watchdog y mensajería proactiva por MQTT para una operación confiable 24/7.
  - Palabras clave: systemd, MQTT, Watchdog

Detalles:

- **Reemplazo propio de Alexa**: Reemplacé a Alexa / Google Home con un asistente de voz y pantalla táctil de propiedad propia: detección de wake-word, pipeline de voz, LLM con herramientas, integración con Home Assistant y carcasa impresa en 3D sobre Raspberry Pi.
  - Impacto: Stack DIY de IA en edge, sin dependencia cloud para activar ni bloqueo de proveedor
  - Palabras clave: Raspberry Pi, Home Assistant
- **EXA validado en hardware edge**: Validé el stack agéntico de EXA completo corriéndolo sobre hardware edge, donde EXA hace de cerebro y personalidad del asistente del hogar.
  - Impacto: Un kiosko personal valida EXA para uso residencial real
  - Palabras clave: Edge AI, EXA
- **Agente que gestiona su contenedor**: Le di al asistente auto-gestión de su runtime en la Pi con servidores MCP propios para operaciones de contenedor (logs, restart, deploy, healthcheck) via OpenClaw.
  - Impacto: El agente gestiona su contenedor Docker sin intervención humana
  - Palabras clave: MCP, Docker, OpenClaw
- **Routing de LLMs edge y cloud**: Bajé costo y latencia con routing inteligente de LLMs: modelos pequeños en edge para tareas livianas, LLMs cloud (Anthropic Claude, OpenAI) para razonamiento pesado.
  - Impacto: Routing mixto edge + cloud que balancea costo, latencia y calidad de razonamiento
  - Palabras clave: Ollama, Claude, OpenAI
- **Coordinación de sub-agentes**: Coordiné los sub-agentes con un sistema multi-agente: agente principal, sub-agentes, memoria compartida con grafo de tareas y canales de mensajes.
  - Impacto: 1 patrón de orquestación soporta ejecución paralela de sub-agentes y recuperación
  - Palabras clave: Multi-agente, Memoria compartida
- **Notion como tablero de control**: Le di al humano visibilidad y control en tiempo real con la API de Notion como superficie human-in-the-loop: backlog en vivo, auditoría y asignación manual de tareas.
  - Impacto: Notion como tablero de misión en vivo del sistema de agentes
  - Palabras clave: Notion API, Human-in-the-loop
- **Activación local, sin nube**: Mantuve la activación local con modelos ML edge entrenados (wake word y VAD) corriendo en la Pi, sin ida y vuelta al cloud.
  - Impacto: Escucha always-on sin latencia de activación por cloud
  - Palabras clave: Edge ML, Wake word
- **Operación 24/7 desatendida**: Opero el kiosko 24/7 desatendido con servicios systemd, supervisión watchdog y mensajería proactiva por MQTT.
  - Impacto: Operación residencial confiable 24/7
  - Palabras clave: systemd, Watchdog, MQTT
- **Carcasa diseñada e impresa en 3D**: Construí hardware y software juntos: carcasa propia diseñada en Fusion 360 e impresa por FDM, con UI Flutter Pi sobre Linux headless.
  - Impacto: DIY completo: diseño industrial, impresión 3D y stack de software de IA en edge
  - Palabras clave: Fusion 360, Impresión 3D, Flutter Pi

Resultados clave:

- IA edge DIY que reemplaza a Alexa / Google Home: wake-word + LLM + herramientas + Home Assistant + Notion HITL sobre Raspberry Pi
- Valida EXA sobre hardware edge residencial como prueba de concepto de la estrategia EXA más amplia
- Hardware y software construidos juntos: carcasa Fusion 360, impresión FDM, UI Flutter Pi, Linux y runtime agéntico de IA

Stack: Flutter Pi, Python, OpenWakeWord, faster-whisper, OpenClaw, Anthropic Claude, OpenAI API, Ollama, MCP, Multi-Agente, Memoria Compartida, Home Assistant, Notion API, Edge ML, MQTT, WebSocket, Docker, Raspberry Pi, Fusion 360, Impresión 3D, GitHub Actions

Página del proyecto: https://alvaro.accentio.dev/projects/exa-home-kiosko?locale=es

### alvaro-bash

Proyecto personal · 2026 – Presente · Web

Etiquetas: Portafolio, Next.js, React, Exports ATS, Skill de Claude Code

alvaro-bash Resume Site es el portfolio productivo de este CV. Lo armé sobre un solo dataset centralizado (3 locales) que alimenta el frontend en Next.js + React 19, el simulador interactivo de terminal y los exportadores machine-readable para sistemas ATS (resume.json / resume.xml), RSS, JSON Feed y agentes LLM (llms.txt). Incluye un skill propio de Claude Code (cv-optimizer) que lee ese mismo dataset y genera variantes de CV por vacante a pedido, y mantiene sincronizados a humanos, reclutadores, crawlers y agentes IA desde una sola fuente.

Logros:

- **Portafolio estilo terminal**: Construí un portfolio estilo terminal donde alvaro-bash expone perfil, experiencia, proyectos y datos ATS con navegación por comandos.
  - Palabras clave: Next.js, React, CLI UX
- **Páginas dedicadas por proyecto**: Entregué páginas dedicadas por proyecto con metadata por locale, canonical/hreflang y rutas preparadas para descubrimiento.
  - Palabras clave: SEO, hreflang
- **Salidas legibles por máquinas**: Publiqué salidas machine-readable (resume.json, resume.xml, RSS, JSON Feed, llms.txt) desde una única fuente de verdad.
  - Palabras clave: JSON, XML, RSS, llms.txt

Detalles:

- **Un dataset para cada consumidor**: Alimenté el frontend React, el simulador de terminal y los exportadores machine-readable (resume.json, resume.xml, RSS, JSON Feed, llms.txt) desde un solo dataset centralizado en 3 locales. Humanos, reclutadores, ATS, crawlers y agentes IA leen lo mismo.
  - Impacto: 1 dataset alimenta 5+ superficies de consumo sin duplicación
  - Palabras clave: Next.js, ATS, Agentes de IA
- **Simulador de terminal interactivo**: Distinguí el portfolio con un simulador interactivo estilo terminal: navegación por comandos, autocompletado, búsqueda fuzzy y rutas virtuales para /resume, /ats y /system.
  - Impacto: UX de terminal como personalidad del portfolio y demo técnica en vivo
  - Palabras clave: CLI UX, Búsqueda fuzzy
- **Skill cv-optimizer de Claude Code**: Entregué un skill propio de Claude Code (cv-optimizer) que lee el dataset y genera variantes de CV por vacante en 3 locales (PDF + JSON + markdown + justificación), con una rúbrica de puntuación ponderada de 4 componentes y reglas de reencuadre que no inventan nada.
  - Impacto: 1 skill de Claude produce variantes de CV por vacante desde el mismo dataset, sin bifurcar contenido
  - Palabras clave: Claude Code, Variantes de CV
- **Páginas de proyecto con SEO**: Generé páginas dinámicas de detalle de proyecto con static params, metadata SEO por proyecto, canonical y hreflang para descubrimiento.
  - Impacto: 12+ páginas de proyecto con superficie SEO completa por locale (en / es / br)
  - Palabras clave: Next.js, SEO, hreflang
- **Exportación del CV en tres formatos**: Exporté el CV desde el navegador en PDF, Word (.docx) o texto plano a partir de un solo modelo de layout, el mismo que usa el skill cv-optimizer para las variantes por rol.
  - Impacto: 3 formatos desde 1 modelo de layout compartido por el sitio y el skill
  - Palabras clave: PDF, DOCX, TXT
- **Deploy responsive en Vercel**: Mantuve el deploy compatible con Vercel, con UI responsive para desktop y mobile y patrones edge-compatibles.
  - Impacto: Despliegue productivo en Vercel con UX responsive
  - Palabras clave: Vercel, Responsive

Resultados clave:

- Un solo dataset en 3 locales impulsa 5+ superficies de consumo (frontend, simulador de terminal, PDF, endpoints ATS, RSS, JSON Feed, llms.txt)
- El skill propio de Claude Code (cv-optimizer) genera variantes de CV por vacante desde el mismo dataset, con reencuadre fiel para bajar de senior a junior y adaptar por vertical
- Listo para ATS: resume.json, resume.xml, RSS, JSON Feed y llms.txt salen todos de una sola fuente

Stack: Next.js, React, TypeScript, alvaro-bash, Claude Code Skill, cv-optimizer, Metadata API, JSON Feed, RSS, XML, ATS, Vercel, GitHub Actions

Página del proyecto: https://alvaro.accentio.dev/projects/alvaro-bash-resume-site?locale=es

### Accentio Studios Website

Accentio Studios · 2026 – Presente · Web

Etiquetas: Sitio de empresa, Next.js 16, React 19, Three.js, Design system

El sitio de Accentio Studios cuenta la historia de la empresa como un vuelo 3D guiado por scroll: un cohete cruza 12 secciones mientras React Three Fiber renderiza sol, planetas y estrellas procedurales. Corre en Next.js 16 con React 19 y React Server Components, en tres idiomas. Sus componentes salen de Excelsior, un design system React que construí con theming por tokens en Tailwind 4 sobre Base UI.

Logros:

- **Vuelo de cohete 3D con scroll**: Construí el sitio de Accentio Studios en Next.js 16 (App Router) + React 19 + TypeScript, con una home 3D guiada por scroll en React Three Fiber: el vuelo de un cohete.
  - Palabras clave: Next.js 16, React Three Fiber
- **Secciones como Server Components**: Construí 12 secciones narrativas como React Server Components, con sol, planetas y campo de estrellas procedurales en Three.js.
  - Palabras clave: React Server Components, Three.js
- **Tres idiomas con SEO**: Publiqué rutas en inglés, español y portugués con selector de idioma, imágenes Open Graph y fuentes variables self-hosted.
  - Palabras clave: i18n, Open Graph
- **Design system Excelsior**: Construí Excelsior, el design system React de Accentio: theming por tokens con Tailwind 4 sobre Base UI, con Button, Badge, Card, Avatar y un theme provider claro/oscuro.
  - Palabras clave: Tailwind 4, Base UI

Detalles:

- **Home 3D en React Three Fiber**: Construí una home 3D guiada por scroll con React Three Fiber y drei: vuelo de cohete con keyframes, HUD, línea de tiempo y cuerpos celestes procedurales.
  - Impacto: 12 secciones narrativas, 50 componentes .tsx
  - Palabras clave: React Three Fiber, drei
- **Separación server y client**: Rendericé las 12 secciones como React Server Components y dejé la escena 3D en componentes cliente, con rutas por sub-path en inglés, español y portugués.
  - Palabras clave: React Server Components
- **Librería de componentes Excelsior**: Construí Excelsior, una librería de componentes React 19 sobre Base UI con theming por tokens en Tailwind 4: Button, Badge (API tone × variant), Card, Avatar, Icon y un theme provider claro/oscuro con portal container.
  - Impacto: 7 exports por subpath, 14 suites de Vitest, 11 guardas de empaquetado y arquitectura
  - Palabras clave: React 19, Base UI, Vitest
- **Empaquetado dual ESM/CJS**: Empaqueté Excelsior como librería dual ESM/CJS con tipos por condición, verificada con publint y attw y con una matriz de instalación sobre node_modules plano, hoisted y con symlinks.
  - Impacto: 3 layouts de instalación cubiertos por el chequeo de release
  - Palabras clave: publint, attw, bunchee
- **Metadata SEO y fuentes**: Agregué metadata SEO con imágenes Open Graph y metadataBase, y serví las fuentes variables woff2 desde el propio sitio.
  - Palabras clave: Open Graph, woff2

Resultados clave:

- Sitio de empresa en Next.js 16 + React 19 con home React Three Fiber guiada por scroll, en 3 idiomas
- Excelsior: design system React sobre Base UI con theming por tokens en Tailwind 4, 14 suites de Vitest y guardas de empaquetado

Stack: Next.js, React, TypeScript, React Server Components, React Three Fiber, drei, Three.js, Tailwind, Base UI, Vitest, Testing Library, Playwright, bunchee

Página del proyecto: https://alvaro.accentio.dev/projects/accentio-studios-website?locale=es

### Omeleth

Iniciativa de producto · 2024 – Presente (Fase de arquitectura) · Internacional

Etiquetas: Restaurantes, Kiosk + KDS, Flutter, NestJS, WebSocket

Omeleth es un sistema integrado de Kiosk + Kitchen Display System para restaurantes de cualquier tipo. Combina el pedido del cliente y la operación de cocina en un monorepo Flutter unificado con API NestJS. Lo diferencia el research UX hecho en cocinas bajo presión, que ordena los tickets por tiempos de preparación y prioriza la legibilidad a distancia. El código está en MVP temprano, con los flujos básicos armados.

Logros:

- **Kiosko y KDS en un monorepo**: Definí la arquitectura de producto para restaurantes de cualquier tipo, con Kiosk de pedidos y KDS de cocina en un mismo monorepo Flutter.
  - Palabras clave: Flutter, Monorepo
- **Research UX de presión en cocina**: Diseñé los flujos UX a partir de research en cocinas bajo presión, con secuenciación por tiempos de preparación y foco en la legibilidad.
  - Palabras clave: Research UX, KDS
- **Módulos NestJS acotados**: Acoté la superficie de API en NestJS con módulos por dominio: auth, users, menu, orders, kitchen y analytics.
  - Palabras clave: NestJS
- **Sync en tiempo real kiosko-KDS**: Definí la operación offline-resiliente y la sincronización en tiempo real por WebSocket entre kiosk y cocina.
  - Palabras clave: Socket.IO, Offline-first
- **Flavors sobre un core compartido**: Establecí el roadmap que separa la ejecución de Kiosk y Kitchen con flavors Flutter sobre un core compartido.
  - Palabras clave: Flutter, Flavors

Detalles:

- **UX de back-of-house**: Diseñé la experiencia de cocina alrededor del servicio bajo presión: secuencio por tiempos de preparación y priorizo la legibilidad a distancia. Los KDS comerciales se quedan en 'el KDS es una lista de tickets'.
  - Impacto: El research UX de cocina como diferencial frente a los KDS comerciales
  - Palabras clave: Research UX, KDS
- **Un código, dos superficies**: Unifiqué Kiosk (pedido del cliente) y KDS (cocina) en un solo monorepo Flutter con flavors por rol sobre una capa core compartida, en lugar de dos codebases separados.
  - Impacto: 1 codebase sirve 2 superficies distintas (kiosk y cocina) via flavors
  - Palabras clave: Flutter, Flavors
- **Seis módulos de API acotados**: Acoté la superficie de API en NestJS con módulos de dominio delimitados: auth, users, menu, orders, kitchen y analytics.
  - Impacto: 6 módulos delimitados definidos en el alcance de la API NestJS
  - Palabras clave: NestJS
- **Pedidos en menos de un segundo**: Planifiqué la propagación en tiempo real del pedido, de kiosk a KDS via Socket.IO, para que la cocina lo vea en menos de un segundo.
  - Impacto: Sincronización de pedidos en tiempo real por WebSocket entre kiosk y KDS
  - Palabras clave: Socket.IO, Tiempo real
- **Servicio resiliente sin red**: Esbocé la operación offline-resiliente para sostener el servicio cuando la red local del restaurante cae en hora pico.
  - Impacto: Estrategia offline-first para continuidad de servicio ante fallo de red
  - Palabras clave: Offline-first

Resultados clave:

- Código en MVP temprano: flujos básicos armados sobre un monorepo Flutter de arquitectura rigurosa con API NestJS
- El research UX de cocina guía el diseño más allá del ticket de orden habitual en KDS
- Codebase unificado: Kiosk, Kitchen y core compartido via flavors Flutter

Stack: Flutter, Dart, NestJS, TypeScript, Socket.IO, Swagger, PostgreSQL, Docker

Página del proyecto: https://alvaro.accentio.dev/projects/omeleth?locale=es

### GKONE · GK One Identity

Proyecto para cliente · 2021 – Presente (En progreso) · Jamaica

Etiquetas: Banca, Identidad / SSO, React, Next.js, .NET 10, Flutter

GKONE es la plataforma bancaria productiva de un banco jamaiquino. Desde 2021 entrego features en su app mobile, sus web apps, sus microservicios y su identidad, primero via The Bridge Social y después en forma directa con Accentio Studios, cuando el banco decidió retenerme. Mi pieza más grande es GK One Identity (GKID): la capa OAuth 2.1 / OpenID Connect propia del banco, delante de Microsoft Entra External ID. Da a cada app de GK One y a cada partner aprobado una sola cuenta de cliente, single sign-on, consentimiento y permisos revocables. Construí su front web en React, sus pantallas de administración, su servidor de autorización en .NET 10 y sus puertas de entrada en mobile: el login con Entra ID y el launcher de apps de GK ID.

Logros:

- **Login web de GKID en React**: Construí el front web de GK One Identity (GKID), el single sign-on del banco, en Next.js 15 + React 19 + TypeScript: sign-in, sign-up, reset de contraseña, consentimiento y selector de cuentas en 20 pasos de autenticación.
  - Palabras clave: Next.js 15, React 19, TypeScript
- **Portal de cuenta self-service**: Construí en React el portal de cuenta self-service, donde el cliente revoca apps conectadas, cierra sesiones por navegador y consulta sus dispositivos registrados.
  - Palabras clave: React, Sesiones
- **Admin de GK Identity**: Construí la sección GK Identity del admin en Next.js + React + MUI: un wizard de registro de apps que reintenta desde el paso que falló, client secrets, scopes, política de consentimiento y single sign-on por app.
  - Palabras clave: Next.js, MUI
- **Servidor OAuth 2.1 en .NET 10**: Escribí en .NET 10 el servidor de autorización OAuth 2.1 / OpenID Connect del banco: authorization code con PKCE, rotación de refresh tokens y de llaves RS256, discovery, userinfo e introspection, cubierto por 1.346 casos xUnit.
  - Palabras clave: .NET 10, OAuth 2.1, OIDC, xUnit
- **Launcher de apps de GK ID**: Construí el launcher de apps de GK ID en tres bases de código: la app Flutter emite un código de un solo uso, el IAM en .NET lo canjea y el login en Next.js abre la app de destino con la sesión iniciada.
  - Palabras clave: Flutter, .NET, Next.js
- **De B2C a Entra External ID**: Migré la identidad de clientes de Azure AD B2C a Microsoft Entra External ID en la app Flutter, las web apps y las integraciones de terceros, moviendo cada cuenta en su siguiente inicio de sesión.
  - Palabras clave: Azure AD B2C, Entra External ID
- **App bancaria Flutter desde 2021**: Construí en la app Flutter el login con Entra ID, biometría y detección de root, la Home V2, la recarga de teléfono y la gestión de cuenta, con más de 1.600 commits desde 2021.
  - Palabras clave: Flutter, Entra ID, Biometría

Detalles:

- **Login web de GKID**: Construí el login web de GKID en Next.js 15 (App Router) + React 19 + TypeScript, con Zustand, react-hook-form y Zod sobre las APIs de autenticación nativa de Microsoft Entra: sign-in, sign-up, reset de contraseña, OTP por email, consentimiento, selector de cuentas, SSO silencioso y transferencia de sesión desde la app mobile. Lo migré de una SPA en Vite a Next.js.
  - Impacto: 224 de los 229 commits del repo; 20 pasos de autenticación, 96 archivos de test unitario con 1.122 casos (Vitest + Testing Library) y 6 specs e2e con Playwright
  - Palabras clave: Next.js 15, React 19, Zustand, Zod
- **Tokens fuera del navegador**: Saqué todos los tokens del navegador: 13 route handlers de Next.js funcionan como backend-for-frontend, la sesión vive en una cookie HttpOnly __Host- y los chequeos de mismo origen y Fetch Metadata bloquean las peticiones cross-site.
  - Impacto: Ningún token en el storage del navegador; una sola imagen Docker promovida de Dev a Prod, con Azure App Configuration cargado al arrancar
  - Palabras clave: BFF, Cookies, CSRF
- **Portal de cuenta self-service**: Construí en React el portal de cuenta self-service: el cliente ve las apps que conectó, las revoca, cierra sesiones por navegador o en todas partes y consulta sus dispositivos registrados.
  - Impacto: 4 páginas de cuenta, desplegadas con Azure Pipelines (Dev, QA, UAT, Prod), Docker y SonarQube
  - Palabras clave: React, Azure Pipelines, Docker
- **Sección GK Identity del admin**: Construí la sección GK Identity del portal administrativo del banco en Next.js + React + MUI: un wizard que crea la app de Entra y su service principal en 6 etapas y reintenta desde la que falló, generación y revocación de client secrets, scopes, política de consentimiento, single sign-on por app y recursos de API.
  - Impacto: El equipo del banco registra una app de partner nueva desde un solo wizard; escribí las 5.272 líneas de la sección
  - Palabras clave: Next.js, MUI, Entra ID
- **Admin del contenido de la app**: Construí las pantallas del admin que manejan la home de la app mobile: ítems del menú de servicios y promociones por tenant, con copia o movimiento entre tenants y desactivación y borrado masivos.
  - Impacto: Cerca de 6.700 líneas construidas de punta a punta; autor principal del portal, con cerca del 60% de su código
  - Palabras clave: Next.js, MUI, Multi-tenant
- **Servidor de autorización OAuth 2.1**: Escribí el servidor de autorización de GK One Identity en .NET 10 (/oauth2/v1): authorization code con PKCE S256, rotación de refresh tokens con detección de reuso, JWKS RS256 con rotación de llaves, discovery, userinfo, introspection, resource indicators (RFC 8707) y logout iniciado por el cliente. Lo endurecí con 8 políticas de rate limit y con refresh y session tokens guardados como hashes SHA-256.
  - Impacto: 3 controllers con 56 endpoints (OAuth2, administración de Entra, conflictos de identidad), 108 archivos de test xUnit con 1.346 casos y 155 de los 156 commits del código OAuth
  - Palabras clave: .NET 10, PKCE, JWKS, Rate limiting
- **Launcher de GK ID completo**: Construí de punta a punta el launcher de apps de GK ID: la app Flutter emite un código de transferencia de sesión de un solo uso, el IAM lo canjea y el login web abre la app de destino con la sesión iniciada, sin un segundo login.
  - Impacto: Una feature entregada en la app Flutter, el IAM en .NET y el login en Next.js
  - Palabras clave: Flutter, .NET, Next.js, SSO
- **Migración de B2C a Entra**: Migré la identidad de clientes de Azure AD B2C a Microsoft Entra External ID en la app Flutter, las web apps del banco y las integraciones de terceros: cada cuenta se mueve en su siguiente inicio de sesión con validación JWKS, y un endpoint batch mueve el resto.
  - Impacto: Migración de identidad completa en mobile, web e integraciones de partners
  - Palabras clave: Azure AD B2C, Entra External ID, JWKS
- **Resolución de conflictos de identidad**: Construí la resolución de conflictos de identidad: el sistema detecta clientes duplicados y pasa cada caso por aprobación maker-checker en el portal administrativo. Un orquestador de merge con chequeos previos, un snapshot en Cosmos DB y rollback ejecuta la unión aprobada desde una cola de Azure Service Bus y expulsa las sesiones viejas.
  - Impacto: Detección, unión, pantallas de admin y flujo mobile construidos de punta a punta
  - Palabras clave: Maker-checker, Cosmos DB, Azure Service Bus
- **Documentación con Diátaxis**: Documenté GK One Identity en 26 documentos organizados con Diátaxis: tutoriales, guías how-to, referencia y explicación.
  - Impacto: 26 documentos, 62 de 62 commits
  - Palabras clave: Diátaxis, Documentación
- **Login con Entra ID en Flutter**: Construí en la app Flutter el login y el registro con Microsoft Entra ID (activación de biometría, login social detrás de un feature flag, detección de root y jailbreak) y la mayor parte de la Home V2, la gestión de cuenta, la recarga de teléfono y el historial de transacciones, más cambios de API en los microservicios core, remittance y wallet.
  - Impacto: Más de 1.600 commits desde 2021; escribí completo el módulo de Entra ID (51 archivos), el 82% de la Home V2 y el 75% de la gestión de cuenta
  - Palabras clave: Flutter, Entra ID, Biometría

Resultados clave:

- GK One Identity (GKID): login web en React 19 + Next.js 15, portal de cuenta en React, admin en Next.js + MUI y servidor OAuth 2.1 / OIDC en .NET 10, construidos de punta a punta
- Una sola cuenta de cliente y single sign-on entre las apps de GK One y los partners aprobados, con consentimiento y permisos revocables
- Migración de Azure AD B2C a Microsoft Entra External ID entregada en mobile, web e integraciones de terceros

Stack: React, Next.js, TypeScript, Zustand, React Hook Form, Zod, Tailwind, MUI, Vitest, Playwright, .NET 10, C#, OAuth 2.1, OpenID Connect, PKCE, Microsoft Entra External ID, Azure AD B2C, MassTransit, Azure Service Bus, Cosmos DB, SQL Server, Azure API Management, Azure App Configuration, Azure Pipelines, Docker, Flutter, Firebase, Fastlane

Página del proyecto: https://alvaro.accentio.dev/projects/gkone?locale=es

### El Camino del Dragón

Proyecto para cliente · 2024 – Presente (En progreso) · Internacional

Etiquetas: EdTech, Chino (HSK), Flutter, NestJS, AWS + Terraform, Liderazgo

El Camino del Dragón es una plataforma de aprendizaje de chino con progresión HSK, construida para un cliente por un equipo de Accentio Studios que lidero (un dev y una UX designer). Abarca una app mobile en Flutter, un panel admin en Flutter web, una API NestJS + Prisma sobre MongoDB e infraestructura AWS escrita en Terraform.

Logros:

- **Liderazgo de un equipo de tres**: Lidero el equipo de Accentio Studios (un dev y una UX designer) que construye El Camino del Dragón, una plataforma de aprendizaje de chino con progresión HSK.
  - Palabras clave: Liderazgo, Flutter, NestJS
- **App Flutter offline-first**: Construí la app Flutter sobre BLoC/Cubit y ObjectBox, con cola de progreso offline-first y agenda de repaso por palabra.
  - Palabras clave: Flutter, Cubit, ObjectBox
- **Simulacro de examen HSK**: Construí un simulacro de examen HSK sobre 200 puntos (aprueba con 120), cronometrado en dos partes y calificado en el servidor.
  - Palabras clave: HSK, NestJS
- **API NestJS sobre MongoDB**: Construí la API NestJS + Prisma sobre MongoDB (31 modelos), con auth de Firebase, media en S3 y email con SES.
  - Palabras clave: NestJS, Prisma, MongoDB, Firebase Auth
- **Infraestructura AWS en Terraform**: Codifiqué la infraestructura AWS en Terraform: API Gateway, CloudFront, S3, SES, SSM y alarmas de CloudWatch para staging y producción.
  - Palabras clave: Terraform, AWS
- **Corridas end-to-end con un agente**: Instrumenté la app del estudiante para corridas end-to-end guiadas por un agente: keys de widget, una sesión de prueba inyectada por dart-define y Marionette, para que Claude Code la maneje en un emulador contra staging.
  - Palabras clave: Marionette, Claude Code, MCP
- **Panel admin en Flutter web**: Construí el panel admin en Flutter web: constructor de tests estructurados, selector de media, importación desde hoja de cálculo y reordenamiento con arrastrar y soltar.
  - Palabras clave: Flutter Web, forui

Detalles:

- **Tech lead y principal contribuidor**: Lidero el equipo de Accentio Studios en el proyecto, un dev y una UX designer, como tech lead y principal contribuidor.
  - Impacto: 481 de los 540 commits de la app mobile y 245 de 258 en la API
  - Palabras clave: Liderazgo, Flutter, NestJS
- **App de aprendizaje offline-first**: Construí la app Flutter sobre BLoC/Cubit y ObjectBox: cola de progreso offline-first, agenda de repaso por palabra, un diccionario dueño de cada palabra con varios significados y un lote de práctica adaptativo.
  - Impacto: Cerca de 1000 casos de test Flutter en 141 archivos
  - Palabras clave: Flutter, ObjectBox, Repaso espaciado
- **Simulacro HSK corregido en servidor**: Construí un simulacro de examen HSK sobre 200 puntos con aprobación en 120, cronometrado en dos partes y con la nota calculada en el servidor.
  - Palabras clave: HSK, NestJS
- **API con 31 modelos**: Construí la API NestJS + Prisma sobre MongoDB: 31 modelos en 17 módulos, auth de Firebase con JWT, media en S3, email con SES, importador de hojas de cálculo y un banco de tests con control de cobertura y recetas de examen.
  - Impacto: 73 archivos spec y 567 casos Jest, con specs de integración en Supertest
  - Palabras clave: NestJS, Prisma, MongoDB, Jest
- **Terraform con deploys por OIDC**: Codifiqué la infraestructura AWS en Terraform: API Gateway, CloudFront, S3, SES, SSM, SNS, alarmas de CloudWatch, CloudTrail, presupuestos y los roles OIDC que asume GitHub Actions para desplegar sin llaves de larga duración ni SSH, en staging y producción.
  - Impacto: 10 módulos, 52 archivos .tf, 58 corridas de test contra un provider simulado
  - Palabras clave: Terraform, AWS, OIDC, GitHub Actions
- **Panel para editores de contenido**: Construí el panel admin en Flutter web para los editores de contenido (constructor de tests estructurados, selector de media, importación desde hoja de cálculo, reordenamiento con arrastrar y soltar) y lo desplegué en S3 detrás de API Gateway.
  - Palabras clave: Flutter Web, S3
- **20 planes con Claude Code**: Planifiqué el trabajo con Claude Code en 20 planes de implementación entre la app y la API, 10 de ellos con el test primero, y corrí checks end-to-end con Marionette en la app del estudiante y con Chrome DevTools Protocol en el admin web.
  - Impacto: 20 planes con cerca de 1.360 pasos
  - Palabras clave: Claude Code, Marionette, CDP

Resultados clave:

- Plataforma de aprendizaje de chino con progresión HSK y simulacro de examen de 200 puntos, en mobile Flutter, admin en Flutter web y API NestJS + Prisma
- Infraestructura AWS codificada en Terraform (10 módulos, 58 corridas de test) para staging y producción
- Tech lead de un equipo Accentio de 3 personas; cerca de 1500 tests automatizados entre app y API

Stack: Flutter, Dart, BLoC / Cubit, ObjectBox, forui, Flutter Web, NestJS, Prisma, MongoDB, Firebase Auth, JWT, AWS, API Gateway, CloudFront, S3, SES, EC2, Terraform, Docker, GitHub Actions, Fastlane

Página del proyecto: https://alvaro.accentio.dev/projects/camino-del-dragon?locale=es

### Erictech

Proyecto para cliente · Julio 2024 – Octubre 2024 · Brasil

Etiquetas: Telemetría IoT, Flutter, Go, MQTT

Erictech es una plataforma española de telemetría para flotas y activos sobre dispositivos IoT Ruptela y Teltonika; trabajé para su pequeña división en Brasil como puente con la casa matriz en España. El contrato se enfocó en entregar Quick Command (app Flutter mobile para configurar rastreadores por SMS), mejoras backend en Go al sistema de rastreo y soporte a la migración masiva de datos durante el rollout en un cliente enterprise grande.

Logros:

- **Telemetría de flotas en tiempo real**: Entregué servicios de telemetría en tiempo real para flotas y activos distribuidos.
  - Palabras clave: IoT, Telemetría
- **Integración con Ruptela y Teltonika**: Integré la ingesta de dispositivos IoT Ruptela y Teltonika.
  - Palabras clave: Ruptela, Teltonika
- **MQTT entre app y backend**: Conecté la UX mobile con los servicios backend por mensajería MQTT.
  - Palabras clave: MQTT, Flutter

Detalles:

- **App Quick Command para rastreadores**: Entregué Quick Command (app Flutter mobile) con comandos precargados, recepción de ACK e hilos de configuración por equipo, y saqué del medio el tipeo manual de SMS para configurar rastreadores.
  - Impacto: App completa entregada en 4 meses como único ingeniero en Brasil (equipo Erictech coordinado desde España, máximo 2 devs)
  - Palabras clave: Flutter, SMS, IoT
- **Backend Go sobre MQTT**: Reforcé el sistema productivo de rastreo de Erictech con mejoras backend en Go, integradas con dispositivos Ruptela y Teltonika sobre MQTT y flujos orientados a eventos.
  - Palabras clave: Go, MQTT
- **Migración de datos enterprise**: Sostuve la migración masiva de datos de miles de usuarios, equipos y vehículos que destrabó el rollout enterprise del sistema.
  - Impacto: Miles de usuarios, equipos y vehículos migrados al nuevo sistema
  - Palabras clave: Migración de datos
- **Aportes UX a la plataforma**: Aporté hallazgos de UX que el equipo interno implementó en iteraciones posteriores de la plataforma de rastreo.
  - Palabras clave: UX

Resultados clave:

- 1 app mobile completa entregada en 4 meses (Quick Command) elimina el flujo manual de SMS para configurar equipos
- Miles de usuarios, equipos y vehículos migrados durante el rollout enterprise
- Sistema productivo de rastreo en Go reforzado con mejoras backend

Stack: Flutter, Go, Node.js, Figma, MQTT, Azure, PostgreSQL, Linux

Página del proyecto: https://alvaro.accentio.dev/projects/erictech?locale=es

### Easi

Proyecto para cliente · Junio 2024 – Octubre 2024 · Internacional

Etiquetas: Farma, Lean UX, Design system, Angular, Liderazgo

Easi (sistemas Electronic Batch Record para manufactura farmacéutica regulada) tuvo una renovación total de interfaz basada en Lean UX, de la investigación a la ejecución. Creé un sistema de diseño reusable para su ecosistema y bajé el tiempo de ciclo de tareas un 30%.

Logros:

- **Liderazgo de una renovación Lean UX**: Lideré al equipo de Accentio (un dev y una UX designer) en la renovación total de la interfaz, con Lean UX de punta a punta.
  - Palabras clave: Lean UX, Liderazgo
- **Discovery antes del rediseño**: Ejecuté discovery e investigación para validar las necesidades operativas antes del rediseño.
  - Palabras clave: Research UX
- **Design system reutilizable**: Creé un sistema de diseño y su librería reusable para todo el ecosistema del cliente.
  - Palabras clave: Design system, Figma

Detalles:

- **Liderazgo de un equipo de tres**: Lideré el equipo de Accentio Studios en el proyecto, un dev y una UX designer, como tech lead.
  - Impacto: Equipo de 3 personas, del discovery a la implementación en Angular
  - Palabras clave: Liderazgo, Angular
- **Tareas 30% más rápidas en EBR**: Reduje 30% el tiempo entre el inicio y el fin de una tarea en sistemas EBR (Electronic Batch Record), reestructurando todo el sistema de diseño del site con técnicas Lean UX.
  - Impacto: 30% menos tiempo de ciclo de tareas en sistemas EBR farmacéuticos regulados
  - Palabras clave: Lean UX, EBR
- **Flujo Lean UX completo**: Apliqué Lean UX de punta a punta: discovery, hipótesis, prototipos y validación iterativa.
  - Palabras clave: Lean UX, Prototipado
- **Flujos regulados rediseñados**: Convertí los hallazgos de investigación en flujos rediseñados para operaciones batch reguladas.
  - Palabras clave: UX, Farmacéutica
- **Design system y librería de componentes**: Construí el sistema de diseño y la librería de componentes que acelera los módulos nuevos.
  - Impacto: 1 sistema de diseño y librería de componentes reusable entregados para consistencia en todo el ecosistema
  - Palabras clave: Design system, Angular
- **Implementación Angular con compliance**: Integré la implementación Angular con los servicios backend, sin ceder calidad ni compliance.
  - Palabras clave: Angular, Compliance

Resultados clave:

- 30% de reducción en el tiempo de ciclo de tareas EBR tras reestructurar el design system con Lean UX
- Sistema de diseño y librería de componentes reusable entregados para acelerar módulos futuros en operaciones farmacéuticas reguladas

Stack: Angular, Figma, Azure, SQL Server, Lean UX, EBR

Página del proyecto: https://alvaro.accentio.dev/projects/easi?locale=es

### 500Historias

ConectAldea · 2022 – 2024 · Panamá

Etiquetas: EdTech, Flutter, NestJS, OpenAI API, Research UX

500Historias es una iniciativa EdTech de ConectAldea que empodera a jóvenes mediante lectura y escritura, combinando narrativa digital, comunidad y votación gamificada.

Logros:

- **Plataforma de lectura gamificada**: Desarrollé para ConectAldea una plataforma EdTech gamificada de lectura y escritura juvenil en escuelas de LATAM.
  - Palabras clave: Flutter, EdTech
- **UX mobile y alcance de API**: Diseñé la experiencia mobile y el alcance de la API REST que conecta a alumnos y docentes alrededor del contenido educativo.
  - Palabras clave: Figma, REST
- **Validada con estudiantes en Panamá**: Validé el producto con pruebas en escuelas de Panamá y ciclos de calidad previos al lanzamiento público.
  - Palabras clave: Tests con usuarios, QA

Detalles:

- **Ranking de historias de la comunidad**: Creé un sistema gamificado donde los estudiantes arman rankings de historias hechas por la comunidad, y subí el interés juvenil por la lectoescritura.
  - Impacto: Ranking comunitario gamificado como gancho de producto para el engagement juvenil en lectura y escritura
  - Palabras clave: Gamificación
- **Research UX y discovery**: Hice investigación UX para relevar expectativas de los usuarios y referencias del sector educativo.
  - Palabras clave: Research UX
- **Flujos diseñados en Figma**: Diseñé el layout y los flujos de navegación en Figma antes de implementar.
  - Palabras clave: Figma
- **Prototipo probado en Panamá**: Desarrollé un prototipo mobile e iteré con feedback de estudiantes en entrevistas y sesiones de prueba en Panamá.
  - Impacto: Validado con estudiantes en escuelas panameñas
  - Palabras clave: Tests con usuarios
- **Ciclos de QA para producción**: Ejecuté los ciclos de producción con validaciones de capacidad, seguridad, rapidez y funcionalidad antes del release.
  - Palabras clave: QA, Seguridad

Resultados clave:

- El ranking comunitario gamificado sostiene el engagement juvenil por la lectoescritura como loop principal del producto
- Plataforma EdTech mobile entregada para audiencia juvenil LATAM tras validar con estudiantes panameños
- Ciclo completo de producto guiado por research UX (de discovery a QA productivo) sobre Flutter + NestJS + Logto OAuth + OpenAI API

Stack: Flutter, NestJS, Node.js, Logto OAuth, OpenAI API, Firebase, AWS EC2, MariaDB, PostgreSQL, Figma, UX Research, QA, Fastlane

Página del proyecto: https://alvaro.accentio.dev/projects/500historias?locale=es

## Habilidades técnicas

- **Languages**: Dart, TypeScript, JavaScript, C#, Go, Python, SQL, PHP
- **Frameworks**: React, Next.js, React Router, Flutter, BLoC, Riverpod, NestJS, .NET, Nuxt, Tailwind
- **Infrastructure**: Azure App Service, Azure Blob Storage, Key Vault, App Insights, AWS EC2, Docker, Terraform, CI/CD
- **Observability**: App Insights, Azure Monitor, pipelines de telemetría, alertas operativas con n8n, automatización
- **AI stack**: Anthropic Claude · Claude Code · GitHub Copilot · OpenAI API · Ollama · OpenClaw · servidores MCP propios · orquestación multi-agente con sub-agentes y memoria compartida · routing de LLMs por peso de tarea · RAG · prompt engineering · edge ML en Raspberry Pi · integración Home Assistant · Notion API para supervisión human-in-the-loop
- **Certifications**: ChatGPT, Prompt Engineering, JavaScript, Viral Marketing, Flutter, Vue.js 2, Vue.js 3, HTML/CSS, Git & GitHub, SQL, Software Fundamentals, Unity 2D

## Habilidades principales

Flutter, Dart, Node.js, NestJS, TypeScript, React, Next.js, Go, C#, .NET, Angular, Vue.js, Azure, AWS, Terraform, Docker, Playwright, Marionette (MCP), MongoDB, PostgreSQL, SQL Server, MariaDB, n8n, Ollama, OpenAI API, Claude API, Claude Code, GitHub Copilot, MCP Servers, Home Assistant, Notion API, Prompt Engineering, OpenClaw, Game Dev, Fastlane, GitHub Actions, Azure DevOps

## Palabras clave

Full-Cycle Engineer, Desarrollo Full-Cycle, Full-Stack Engineer, Desarrollador Fullstack, Ownership de punta a punta, Ingeniería de Producto, TypeScript, JavaScript, React, Next.js, React Router, Node.js, NestJS, Flutter, Dart, C#, .NET, Go, Rust, Angular, Vue.js, Nuxt, Tailwind, BLoC, Riverpod, Prisma, APIs REST, Microservicios, OAuth 2.1, OpenID Connect, WebSocket, Clean Architecture, Offline-First, PostgreSQL, MongoDB, SQL Server, MariaDB, Azure, AWS, Terraform, Infraestructura como Código, Docker, CI/CD, DevOps, GitHub Actions, Azure DevOps, Fastlane, OpenTelemetry, Observabilidad, Pruebas Automatizadas, Vitest, Jest, Playwright, IA Agéntica, Sistemas Multi-Agente, MCP, Model Context Protocol, Claude Code, Claude API, OpenAI API, GitHub Copilot, Ollama, OpenClaw, LLM, RAG, Prompt Engineering, Vector Search, Edge AI, Inferencia On-Device, Home Assistant, Notion API, n8n, IoT, Telemetría, SaaS, UX, Game Dev

## Educación

- **CS50's Introduction to Artificial Intelligence with Python**: 2023
- **Formación continua en Software Engineering**: Platzi · 2017 – Presente · rutas de producto, arquitectura e ingeniería
- **Idiomas**: Español (nativo), Portugués (fluido), Inglés (avanzado, profesional)

## Disponibilidad y preferencias

- Disponibilidad: Disponible para entrevistas ahora. Fecha de inicio inmediata a 30 días según la transición.
- Autorización: Disponible para contratos locales e internacionales. La autorización laboral y el sponsorship dependen del país destino.
- Seniority: Senior / Lead
- Política remota: Preferencia por remoto. Abierto a híbrido y relocation para roles estratégicos.
- Roles objetivo: Ingeniero Full-Cycle Senior, Ingeniero Full-Stack Senior, Ingeniero de Producto, Tech Lead, Ingeniero de Sistemas con IA, Engineering Manager (equipos pequeños y medianos)

## Referencias

### Victor Lovera

Desarrollador Full Stack | NodeJS | Laravel | PHP | Flutter | Dart | VueJS | ReactJS | MySQL | FullStack Developer

Agosto 12, 2023 · reporto directo a Alvaro · via LinkedIn

> Alvaro es un excelente líder, siempre dispuesto a ensenar a quienes lo necesitan, dispone de una gran pasion por su trabajo y se adapta a las necesidades de sus clientes y de cada trabajador a su cargo.

### Octavio Rodriguez Vergara

Fundador y CEO de #500Historias, una EdTech de escritura creativa para adolescentes hispanoamericanos

Noviembre 29, 2022 · fue cliente de Alvaro · via LinkedIn

> Trabajar con Alvaro ha sido como entrar en un torrente de creatividad productiva. Su excelente disposicion para el trabajo en equipo, se suma a sus altas capacidades técnicas con un toque de frescura para lo inesperado, buena vibra, alcanzando logros mucho más alla de lo que se requeria de el.

### Mauro Di Bert

Senior Flutter Dev

Marzo 30, 2022 · trabajo con Alvaro en el mismo equipo · via LinkedIn

> Alvaro is a super talented developer, always there to help, always willing to give you a hand to solve problems. He is open to criticism because he has an extreme passion for learning, and evolving.

> He knows how to play in teams, trying all the time to be aware of everyone's situations, and is not afraid to get into discussions to express what he thinks is best for the overall purpose.

> Beyond the previous, he smiled every session we had together: a total pleasure to work with him!

### Sergio Demarco

Fullstack Developer

Marzo 22, 2022 · trabajo con Alvaro en el mismo equipo · via LinkedIn

> We've joined our hands on several projects. I highly recommend his expertise to any person looking for a full stack developer. His ability to tackle any problem is remarkable and with a warm smile. Alvaro would become an appreciated member of any team.

### Orville A. Patterson, MBA, SFC, CSPO, POPM, SSYB

Product Manager | Strategy Manager | SAFe Certified Product Manager | Certified Scrum Product Owner | Project Manager | Digital Transformation Manager

Marzo 21, 2022 · trabajo con Alvaro en el mismo equipo · via LinkedIn

> Alvaro is a great teammate. He works hard and asks the right questions until all is clear. He is very jovial and would be a great fit for any company. He is a willing teamplayer who shines because of his dedication.

### Eduardo Barros

Ssr Software Engineer at Globant | C#/.NET, APIs REST, Cloud | Full-Stack

Enero 31, 2022 · via LinkedIn

> Alvaro e um profissional extremamente dedicado, aprende constantemente e busca melhorar sempre! Busca agregar ao grupo todo e estimular o crescimento da equipe. Sem duvidas, uma pessoa que se destaca no mercado de trabalho!

### Angela Potenza

Inbound Marketing | Relationship Marketing | UX | Copywriting

Abril 30, 2021 · trabajo con Alvaro en el mismo equipo · via LinkedIn

> Super profissional, talentoso, excelente trabalho e responsavel com os prazos de entrega.

### Humberto Raniolo

Systems Engineer | Platform engineer | Splunk | Grafana | Observability | Fullstack developer | Node.js | JavaScript | Angular | NestJS | SQL

Abril 22, 2021 · estudio con Alvaro · via LinkedIn

> Un gran programador y diseñador, muy responsable y eficaz con el trabajo, siempre cumple con las fechas pautadas, muy recomendado!

### Samir Marques Teixeira

Software Development

Abril 22, 2021 · fue senior de Alvaro, sin gestión directa · via LinkedIn

> Fui líder técnico do Alvaro, e ele se mostra uma pessoa bem interessada, bem inteligente e desenvolto, busca solucoes quando necessario. Possui bons conhecimentos técnicos com frontend, backend e banco de dados.
