Luis Gómez

Construyo soluciones web.

Panamá → Salamanca · Ingeniero de software · Fundador de M2G

EN SILENCIO

Cara A

La discografía · lanzamientos del sello

M2G-001 · Pago Venezuela · 2026 · LP

M2G Pay

Cover art de M2G Pay

Problema

Enviar dinero de México a Venezuela es lento, caro y a ciegas: quien paga no sabe cuánto llega ni cuándo, y el comercio que ofrece el servicio lo lleva a mano, sin conciliación fiable.

Solución

Una plataforma de remesas México → Venezuela de marca blanca: el remitente paga en pesos (SPEI u OXXO) y el beneficiario recibe bolívares (Pago Móvil o transferencia), con el cobro, el pago local, la conciliación y los estados en vivo automatizados. En producción desde julio de 2026.

Arquitectura

Backend FastAPI sobre PostgreSQL multi-inquilino con Row-Level Security y colas Celery/Redis; portal del pagador white-label, panel de operador, consola y sitio en React. Kubernetes con GitOps (ArgoCD) y releases por tag; webhooks con reintentos idempotentes para no cobrar dos veces ni perder un pago.

Créditos

  • FastAPI y SQLAlchemy sobre PostgreSQL con Row-Level Security
  • Cobros y pagos por SPEI, OXXO y Pago Móvil, sincronizados por webhooks
  • Celery y Redis para colas y tareas asíncronas
  • React + Vite: portal del pagador, panel de operador, consola y sitio
  • Kubernetes con ArgoCD (GitOps) y releases por tag

Métricas

  • 171 endpoints en la API
  • 36 tablas y 46 migraciones de base de datos
  • 1.144 tests en 96 ficheros, más 77 flujos e2e
  • Multi-inquilino con Row-Level Security real: 14 migraciones con policies
  • 8 pipelines de CI: build por app, release y sync de staging

M2G-002 · M2G · 2026 · LP

M2G Office

Cover art de M2G Office

Problema

Los despachos profesionales de Panamá (contables, legales) están obligados a emitir factura electrónica vía PAC desde 2026 y a cumplir la Ley 81 de datos, pero llevan documentos y trámites a mano, en herramientas sueltas que no hablan entre sí.

Solución

Una plataforma multi-inquilino que unifica el despacho: el documento entra por correo o subida, se lee con OCR, la IA lo clasifica y responde citando la fuente, y se factura por PAC. Desplegada en producción, en fase de piloto con despachos.

Arquitectura

Backend FastAPI sobre PostgreSQL multi-inquilino con Row-Level Security y trabajos en cola con Celery/Redis; tres frontends React más una app móvil en Expo contra la misma API. Kubernetes con GitOps (ArgoCD); Claude para la IA, OCR para los documentos y proveedores PAC para la facturación.

Créditos

  • FastAPI y SQLAlchemy sobre PostgreSQL con Row-Level Security
  • Claude (Anthropic) para clasificar y responder con cita; OCR de documentos
  • Celery y Redis para colas y procesos en segundo plano
  • React + Vite en web; Expo / React Native en móvil
  • Kubernetes con ArgoCD (GitOps)

Métricas

  • 248 endpoints en la API
  • 70 tablas y 39 migraciones de base de datos
  • 1.057 tests en 74 ficheros, más 27 flujos e2e
  • 5 apps desde un monorepo: API, portal, sitio, consola y móvil
  • 25 decisiones de arquitectura (ADR) documentadas
  • 6 pipelines de CI, incluido escaneo de seguridad

M2G-003 · M2G · 2026 · LP

M2G Restaurant

Cover art de M2G Restaurant

Problema

Los restaurantes pequeños no tienen una herramienta de reservas asequible que entienda su sala real (mesas que se juntan y se separan) y que siga funcionando cuando se cae internet en plena cena.

Solución

Una plataforma de reservas multi-inquilino de extremo a extremo: alta self-service, consola de gestión, widget que se pega en la web del restaurante, app de sala táctil offline-first y un motor único de disponibilidad que combina mesas y bloquea fechas de eventos. En vivo con su primer restaurante.

Arquitectura

Postgres con RLS multi-tenant y Auth (Supabase) como fuente de verdad; FastAPI para el motor de disponibilidad y la API pública; consolas en React + Vite, sitios en Astro; app de sala en Tauri con SQLite local (PowerSync). Orquestado en Docker Compose con CI en GitHub Actions.

Créditos

  • FastAPI sobre Postgres (Supabase) con RLS multi-inquilino
  • Motor de disponibilidad y combinación de mesas en Python puro, con tests
  • React + Vite en consolas; Astro + Tailwind en sitios
  • App de sala en Tauri (Rust), offline-first con PowerSync
  • Docker Compose; CI en GitHub Actions

Métricas

  • 121 tests automáticos en verde
  • 27 migraciones SQL versionadas; RLS activado o forzado en 18
  • 19 rutas HTTP: 4 públicas para el widget más admin, operador y facturación
  • Aislamiento entre inquilinos verificado por tests
  • Widget embebible con loader de 2,3 KB, integrable en una línea
  • Multi-idioma: ES/EN/FR/PT en widget y web; ES/EN en consola y app

PV-004 · Pago Venezuela · 2026 · LP

Pago Venezuela · Web

Cover art de Pago Venezuela · Web

Problema

Pago Venezuela no tenía cara pública: quien nunca ha mandado una remesa llega con dudas y sin nada que le explique el servicio ni le dé confianza, y la captación dependía del boca a boca.

Solución

El sitio público del servicio: una landing con calculadora de envío, widget de tipo de cambio, secciones de cómo funciona y de confianza, y un apartado de fundaciones para donar. Bilingüe español/inglés, con su propia infraestructura y despliegue.

Arquitectura

SPA en React + Vite (JavaScript), 27 componentes y 8 secciones animadas, con textos bilingües. Desplegada en una VM propia de Hetzner provisionada con Terraform, servida por Caddy con TLS automático y publicada por rsync; el build corre en CI.

Créditos

  • React + Vite en JavaScript
  • Textos bilingües español/inglés
  • VM de Hetzner provisionada con Terraform
  • Caddy con TLS automático; deploy por rsync desde CI

Métricas

  • 27 componentes React en 8 secciones
  • Bilingüe español/inglés
  • Infraestructura propia como código: Terraform + Caddy
  • 1 pipeline de CI para el build del sitio

GM-005 · Madre Mía · 2026 · LP

Gastrotaberna Madre Mía

Cover art de Gastrotaberna Madre Mía

Problema

El restaurante delegaba su presencia digital y sus reservas en plataformas de terceros: sin web propia, sin datos de sus clientes y pagando comisión por cada mesa.

Solución

Su web propia: cocina, espacio y reservas en un mismo sitio, con el motor de reservas de M2G Restaurant embebido en la propia página. En producción.

Arquitectura

Sitio estático en Astro 5 con SEO local orientado a búsqueda en Salamanca; las reservas entran por el widget embebible de M2G Restaurant contra su API pública.

Créditos

  • Astro 5, sitio estático
  • Widget de reservas embebido contra la API pública de M2G Restaurant
  • SEO local: metadatos y contenido orientados a búsqueda en Salamanca

Métricas

  • En producción en gastromadremia.es
  • Reservas online en la propia web, sin plataformas de terceros

PAT-006 · Autoeditado · 2026 · LP

Patomar

Cover art de Patomar

Problema

La cafetería solo tenía Instagram y una identidad a medio cerrar. No había ningún sitio donde ver la carta, la ubicación ni encontrarla por búsqueda.

Solución

Una landing de una sola página que fija la dirección de diseño elegida, con la carta ilustrada, mapa de cómo llegar y datos estructurados para búsqueda local y asistentes de IA. Proyecto propio a modo de propuesta; no es un encargo del local.

Arquitectura

Sitio 100% estático sin backend: React + TypeScript compilado con Vite, estilos con Tailwind v4 y animación con Motion; el SEO vive en el HTML (JSON-LD, sitemap, llms.txt).

Créditos

  • React 19 y TypeScript sobre Vite
  • Tailwind v4; animación con Motion
  • Datos estructurados: JSON-LD (schema.org), sitemap y llms.txt
  • Sin backend

Métricas

  • 8 secciones en una sola página; 10 componentes React
  • 18 ítems de carta modelados como datos estructurados
  • 3 bloques JSON-LD: CafeOrCoffeeShop, FAQPage y Menu
  • Bundle de ~116 KB de JS (gzip) y 8 KB de CSS, sin backend
  • Contrastes WCAG AA, foco atrapado en el menú móvil y reduced-motion respetado

USAL-007 · TFG · ADE · 2026 · EP

Incertidumbre y Volatilidad

Cover art de Incertidumbre y Volatilidad

Problema

Los estudios sobre incertidumbre de política económica y volatilidad usan periodos, frecuencias y activos distintos, así que EE. UU. y China nunca se comparaban en igualdad de condiciones.

Solución

Un pipeline reproducible que unifica índices EPU/CNEPU y precios de cuatro activos en paneles mensuales idénticos (2014-2025) y los somete a cuatro pruebas: correlación, regímenes por quintiles, causalidad de Granger y GARCH. El hallazgo: la incertidumbre americana amplifica la volatilidad, la china la reduce, y Bitcoin ignora a las dos.

Arquitectura

Tres fases de notebooks (limpieza, exploración por país y análisis final) que desembocan en un único resultados.json como fuente de verdad; el documento del TFG se genera desde ahí con python-docx, sin cifras copiadas a mano.

Créditos

  • Python y Jupyter sobre pandas
  • statsmodels: causalidad de Granger y regímenes por quintiles
  • arch: GARCH(1,1)-t
  • Figuras con matplotlib y seaborn
  • Documento final generado con python-docx desde resultados.json

Métricas

  • 139 meses de panel unificado, 2014-01 a 2025-07
  • 2 índices de incertidumbre por 4 activos: S&P 500, CSI 300, oro y BTC
  • 18 notebooks en 3 fases: limpieza, EDA y análisis
  • Correlación EPU-oro 0.510; única causalidad de Granger significativa (F=7.45, p=0.007)
  • 2.08 veces la volatilidad del S&P 500 en los meses de máxima incertidumbre

En rotación

Heavy rotation del sello · top tracks del mes

Cargando la rotación…

Cara B

Sobre el artista

Retrato · pendiente

Nací en el 2000 en Panamá. Doble grado en Informática y ADE por la USAL, con Matrícula de Honor en el TFG de Informática. Desarrollador full-stack: APIs en FastAPI, frontends en React y despliegues en Kubernetes, con especial interés en sistemas multi-tenant y de tiempo real. El combustible: cold brew, a poder ser de un geisha de Boquete.

Tour dates

  • 2024SalamancaNASA Space Apps Challenge
  • 2025SalamancaBISITE · software developer
  • 2025MadridOsprean · back-end, en remoto
  • 2025SalamancaAcademia Titania · docencia
  • 2026PanamáM2G · fundador

Booking