Saltar al contenido
georgepuma.dev

Construyo productos web que llegan a producción. Y puedo demostrarlo.

Full Stack Developer — React, Next.js, TypeScript, PostgreSQL. Cinco años construyendo productos empresariales en EdTech, e-commerce, ERP y facturación electrónica, con equipos remotos de EE.UU. y Latinoamérica. Diseño flujos de desarrollo asistidos por IA y los trato como lo que son: ingeniería.


  • 500+ escuelas

    LMS K‑12 en producción; principal contribuidor de frontend y API

  • 2 negocios

    usan a diario software que diseñé y construí de extremo a extremo

  • WCAG 2.1 AA

    requisito contractual, cumplido y cubierto por tests

Trabajo

LMS K‑12 para 500+ escuelas en EE.UU. y 10 países: editor de contenido, video, RBAC de 5 roles y cumplimiento FERPA sobre un esquema de 29 entidades.

Diseñé el editor contra sus modos de fallo antes de escribir código, y la subida de archivos acabó como un flujo de tres pasos: URL firmada con los límites en la firma, validación en servidor sobre los bytes reales y finalización explícita.


29 entidades
esquema con RBAC de 5 roles y FERPA
12 jun 2026
entregado en la fecha comprometida
WCAG 2.1 AA
requisito contractual, verificado con jest-axe
Leer el caso de estudio →
Esquema del sistema de Notable LearningLMS multi-institución: 500+ escuelas en 10 países sobre un esquema de 29 entidades agrupadas por dominio — cursos, video, usuarios, instituciones y archivos — con RBAC de 5 roles y cumplimiento FERPA.CURSOSeditor de contenidoVIDEOMuxUSUARIOSRBAC · 5 rolesINSTITUCIONESmulti-tenant500+ escuelasARCHIVOSGCS · PDF por proxy de streaming
Cinco dominios sobre 29 entidades. El nodo destacado, instituciones, es la raíz multi-tenant de cada query.

Cleo Spa

Inventario, catálogo público y reservas para un salón de belleza en Arequipa: ledger de stock inmutable con lotes FEFO, RLS default-deny en 16 tablas y panel con tres roles operativos (dueña, cajera, estilista). La herramienta que el personal usa a diario — no una vitrina.

16 tablas
con RLS default-deny: los permisos viven en la base de datos
ledger insert-only
cada corrección es un ajuste, nunca una edición
Leer el mini-caso →
Panel de movimientos de inventario: tabla de entradas, ventas, consumos y mermas, cada fila con producto, cantidad firmada, ubicación, fecha y autor.

Cómo trabajo

La calidad y el flujo de trabajo son parte del producto, no un paso posterior.

No uso IA como autocompletado: diseño sistemas con ella. Mi flujo principal es Claude Code — subagentes especializados, servidores MCP y comandos propios — y trato la configuración de agentes como lo que es: ingeniería, con sus reglas, sus casos borde y su mantenimiento.

El ejemplo que mejor lo muestra: un revisor automatizado de PRs para Notable Learning. Validaba que cada rama correspondiera a un ticket real de Linear, cargaba las convenciones del proyecto desde un repo de contexto, invocaba subagentes según lo que tocaba el diff (seguridad, tests, arquitectura) y revisaba en dos etapas: primero verificaba si los comentarios bloqueantes anteriores estaban realmente resueltos, citando archivo y línea; después hacía su propia revisión con criterios del proyecto — aislamiento multi-tenant, roles con enums, validación Zod, cero PII en logs. Todo en un único comentario consolidado, con severidades y fixes sugeridos.

Lo diseñé y operé sobre mis propios PRs; el equipo reportó que las revisiones humanas llegaban con el trabajo obvio ya señalado.

Todo el análisis termina en un solo comentario consolidado — un bot que comenta cinco veces es ruido.
  1. Tests E2E con Playwright para los flujos que no pueden fallar.
  2. Accesibilidad verificada automáticamente (axe, jest-axe) en cada componente y página.
  3. Reglas de negocio en la base de datos (RLS default-deny), repetidas en la aplicación.
  4. “Lo que dejaría mejor” escrito al cierre de cada proyecto.

Experiencia

  1. Junto AIFull Stack Developer

    Principal contribuidor de un LMS K‑12 en producción para 500+ escuelas, entregado en la fecha comprometida.

    LMS institucional para EE.UU. y 10 países, con datos de estudiantes menores de edad y cumplimiento FERPA como requisito. Contrato de alcance cerrado, concluido con la entrega.

    1. Frontend completo y capa de API: librería de componentes, editor de contenido para docentes, dashboards de estudiante y docente, y panel de administración multi-institución.
    2. Integraciones de video (Mux) y almacenamiento (Google Cloud Storage), con subida directa en tres pasos y validación del contenido en servidor.
    3. Revisor automatizado de PRs con Claude Code: webhook, validación contra el ticket de Linear, subagentes según el diff y un único comentario consolidado.

    Entregado el 12 jun 2026, la fecha comprometida, con entregas semanales revisadas por el CTO y WCAG 2.1 AA verificado con jest-axe en cada componente.

    Leer el caso de estudio →
  2. Global ResourcesFrontend Developer

    Frontend en Next.js para el sistema de gestión de red de un operador de telecomunicaciones, construido sobre servicios existentes.

    El cliente operaba su sistema desde un frontend en Java sobre los mismos servicios y quería una interfaz moderna. Partí de una plantilla mínima con su design system (Mistica) y trabajé con otro frontend, cada uno a cargo de sus módulos.

    1. Módulos de consulta de la red: componentes, fuentes, nodos y tipos de componente, sobre APIs en Java y Quarkus con Kafka.
    2. Ciclo de demo con el cliente en cada iteración: presentación, cambios pedidos, implementación y nueva presentación.
    3. Ajustes en la API junto al equipo backend cuando el frontend necesitaba otra forma de los datos, y diagnóstico de incidencias en microservicios Spring Boot.
    4. Pruebas unitarias con Cypress sobre los módulos entregados, al cierre del proyecto.
    5. Para un segundo cliente de la consultora, cambios de interfaz en un frontend Angular con microfrontends y en una app Flutter.

    Los módulos se entregaron validados por el cliente en cada iteración, con sus pruebas en el repositorio del equipo.

  3. DesisProgramador

    Tickets de extremo a extremo sobre un sistema de facturación electrónica en producción, en PHP y JavaScript nativos.

    Sistema en producción desde hacía años, sin framework. El trabajo llegaba por tickets del área operativa y comercial, y cada cambio pasaba por QA antes de subir a producción.

    1. Cambios sobre cualquier parte del sistema: flujo de cotización, emisión de facturas y boletas, visualización de contenido y navegación por teclado.
    2. Objetos de base de datos en PostgreSQL — índices, funciones, procedimientos y tipos — para sostener las funciones nuevas y mejorar tiempos de consulta.
    3. Correcciones sobre los tickets devueltos por QA, con el feedback resuelto en el propio ticket.

    Cada cambio llegó a producción tras la validación de QA.

  4. AccountTECHFrontend Developer

    Migración a React de un software de gestión inmobiliaria usado por varios clientes en EE.UU., módulo a módulo.

    El producto existía como aplicación de escritorio en Visual Basic, con una base de datos por cliente y volumen alto. El equipo recibió ese código y lo migró por partes a una plataforma web.

    1. Migración de módulos financieros: Invoices, AR Payments, AP Payments, Notifications y Reports.
    2. Módulo nuevo de notificaciones y campañas, desarrollado de principio a fin, coordinando las reglas de negocio con backend.
    3. Definición de módulos nuevos con el equipo a partir de lo que pedían los clientes del producto.

    Cada módulo migrado pasó a la plataforma web que usan los clientes del sistema.

  5. FootlooseAnalista Programador

    Dos sistemas a la vez: el e-commerce VTEX de cara al cliente y el sistema interno sobre SQL Server que usaba el personal.

    Retail de calzado con operación comercial continua. El e-commerce estaba construido y en marcha; el trabajo era mantenerlo, extenderlo y sostener las campañas de temporada.

    1. Operación comercial en VTEX: campañas, cupones, catálogos, carga masiva de precios y formularios de promociones.
    2. Storefront: cambios de diseño por JSONC, plantillas de correo transaccional y componentes React en VTEX IO.
    3. Sistema interno en Scriptcase: consulta de productos por SKU, cronogramas de pago de colaboradores y generadores de PDF para contratación.
    4. Base de datos SQL Server: tablas, procedimientos almacenados y cambios propagados de desarrollo a producción.

    El e-commerce se mantuvo operativo durante las campañas de temporada y el equipo interno trabajó a diario sobre los módulos que entregué.

  1. BIZZPERUDesarrollador web

    Sitios e interfaces web en Vue y Laravel sobre MySQL, antes del salto a producto.
TypeScript · React · Next.js · Node.js · Tailwind CSS · PostgreSQL · Prisma
Playwright · Jest · NextAuth · Supabase · VTEX IO · SQL Server · Git / CI-CD
Go · NestJS · GCS · Cloudflare R2

Contacto

Busco roles full stack o frontend, remotos, por contrato o indefinidos, en equipos que traten la calidad como parte del producto. Inglés B2 (EF SET). GMT‑5: horario completo con EE.UU. y dos o tres horas de solapamiento con Europa. Si crees que encajo en tu equipo, escríbeme — respondo siempre.

george@georgepuma.dev