Saltar al contenido
AhoraTesis: preguntas en español → SQL sobre el presupuesto público

Rodrigo Solbes

Ingeniería de software y sistemas de IA que puedes verificar.

Estudiante de Ingeniería en Sistemas Computacionales y Auxiliar de Sistemas en Tampico, México, con tres años de experiencia en software, datos e infraestructura de TI. Llevo machine learning a producción dentro de un ERP empresarial en .NET y estoy dando el salto a la ingeniería de software y la IA empresarial, construyendo sistemas en los que cada respuesta muestra su evidencia.

Enfoque
ML aplicado · Text-to-SQL
Ubicación
Tampico, MX · ES / EN
Puedo trabajar en
México · UE (ciudadano español)
Carrera
Ing. en Sistemas · UAT ’27
schema presupuestocargado · conciliado
Esquema en estrella del almacén del presupuesto federal de MéxicoUna tabla de hechos central, hecho_gasto, con 1,285,233 filas, unida a doce tablas de dimensiones.programa_presupuestario901 filasunidad_responsable1,926 filasramo50 filaspartida459 filasmodalidad23 filasentidad_federativa34 filasactividad_institucional375 filasfuente_financiamiento6 filasfinalidad4 filasfuncion28 filassubfuncion91 filastipo_gasto9 filashecho_gasto1,285,233 filas
Fig. 1 · Almacén del presupuesto federal, 2020–2025. Doce tablas de dimensiones alrededor de una tabla de hechos. Pasa el cursor sobre un nodo o tócalo.

§01Resumen

Trabajo donde se cruzan los datos empresariales y los modelos de lenguaje. En mi trabajo opero un modelo calibrado de abandono de clientes dentro de un ERP en .NET que atiende a unas 100 sucursales. En investigación, construyo un sistema que responde preguntas en español sobre el presupuesto federal de México, eligiendo entre SQL generado y normatividad recuperada, y absteniéndose cuando no hay evidencia suficiente. Lo que une ambas cosas: sistemas reproducibles, con mínimo privilegio y honestos respecto de lo que saben.

Palabras clave — text-to-SQL·generación aumentada por recuperación·modelado de abandono·calibración de probabilidades·modelado dimensional·mínimo privilegio·.NET empresarial

i.

Evidencia antes que afirmaciones

Cada respuesta lleva su prueba: el SQL que se ejecutó o el fragmento que cita. Cuando los datos no sustentan una respuesta, la salida correcta es abstenerse.

ii.

Reproducible por defecto

Fuentes registradas con URL, fecha y hash. Prompts versionados como código. Tres corridas por configuración, reportadas con media y dispersión.

iii.

Defensa en profundidad

La base de datos no confía en el validador, y el validador no confía en el modelo. Cada capa se define por lo que puede detener y lo que no.

§02Trabajo seleccionado

Casos de estudio en sistemas de datos, IA aplicada e ingeniería full-stack.

El problema, la arquitectura y el paso a producción de cada caso, con las cifras reales que los respaldan.

Destacado · Agente de IAProyecto personaloct 2026 En línea

finance-coach

Un coach financiero con IA que organiza cada pago por día de nómina y deja la aritmética en manos de código con pruebas.

Ver repositorio(se abre en una pestaña nueva)
TypeScriptNext.js 16React 19Claude APIZodTurso · libSQLTailwind CSS

01La app

El coach organizando los pagos de cada nómina, con montos y fechas
El panel en un teléfono, instalado como app

Las capturas usan datos ficticios.

02Problema

Las apps de los bancos muestran saldos, pero no dicen si el sueldo del mes alcanza para los pagos del mes. Con nómina semanal, varias tarjetas, meses sin intereses (MSI) y préstamos pequeños, la pregunta real es de tiempos: qué vence antes del próximo pago y qué parte de cada saldo de tarjeta hay que liquidar completa para no pagar intereses.

03Enfoque

Un coach conversacional basado en Claude que consulta las cuentas, planes y movimientos reales del usuario mediante herramientas y puede actuar sobre ellos; cada número que menciona sale de un motor determinista. Los estados de cuenta y comprobantes llegan como PDF, capturas de pantalla o archivos CSV y se convierten en movimientos revisados.

herramientas del agente para consultar, calcular y actuar
20
pruebas automatizadas del motor y las herramientas
79
formatos de entrada: PDF, captura, CSV
3
idiomas de respuesta: español e inglés
2

04Cómo funciona el agente

Preguntas

“Organiza mis próximas 4 nóminas”

Claude

Ciclo de herramientas con streaming y razonamiento adaptativo

Respuesta

En streaming; cada cifra sale de una herramienta

20 herramientas

Consultar

  • get_financial_overview
  • get_cash_flow
  • get_monthly_projection
  • get_spending_summary
  • search_transactions
  • list_records
  • list_payment_targets
  • list_memories

Calcular

  • calculate
  • plan_payoff

Actuar

  • save_record
  • delete_record
  • record_payment
  • record_money_in
  • log_transaction
  • update_transaction
  • delete_transaction
  • set_profile
  • remember
  • forget

Motor de cálculo

Fecha límite a partir de la fecha de corte · MSI vs saldo a pagar completo · saldo de efectivo en cada día de pago

libSQL / Turso

Cuentas, planes, movimientos, metas e historial del chat

05Decisiones de ingeniería

  • Los cálculos en código, no en el modelo

    El modelo nunca hace aritmética. Funciones puras con pruebas calculan calendarios, fechas límite y saldos; el coach lee sus resultados o usa una herramienta de cálculo.

  • Herramientas que actúan, con salvaguardas

    Las entradas se validan con Zod antes de ejecutar cualquier herramienta. Registrar un pago actualiza saldos, avance de mensualidades y fechas límite en un solo lote, con protección contra duplicados.

  • Extracción con revisión humana

    Los estados de cuenta y comprobantes se leen con salida estructurada validada por esquema. Las capturas que se traslapan se deduplican en una sola solicitud y cada movimiento se revisa antes de guardarse.

  • Historial que solo crece, pensado para el caché

    Cada conversación conserva un prompt de sistema fijo y un registro de mensajes que solo crece: el caché de prompts se mantiene entre turnos y el historial nunca se edita.

DestacadoTesis de licenciatura · Facultad de Ingeniería Tampico, UAT2026 – 2027 En curso

presupuesto-nlq-mx

Hazle una pregunta en español al presupuesto federal de México y ve el SQL que la respondió.

Ver repositorio
Python 3.14PostgreSQLpsycopg 3sqlglotYAMLLLM APIs

01Problema

México publica su presupuesto federal como datos abiertos, pero leerlo exige saber de análisis de datos y de contabilidad gubernamental. Las cifras viven en tablas con claves alfanuméricas que solo tienen sentido junto a catálogos externos; las reglas que las explican viven en PDF normativos. Los datos son abiertos, pero la mayoría de la gente no puede usarlos.

02Enfoque

Un sistema que responde preguntas en español por una de dos rutas. La ruta de datos traduce la pregunta a SQL sobre una capa semántica documentada, lo valida, lo ejecuta con un rol de solo lectura y devuelve la tabla junto con la consulta exacta. La ruta documental recupera fragmentos de la normatividad oficial y responde con citas. Un enrutador elige la ruta, y el sistema se abstiene cuando la evidencia no alcanza para responder.

filas de hechos cargadas y conciliadas
1,285,233
ejercicios fiscales normalizados, 2020–2025
6
tablas de dimensiones
12
pruebas de seguridad aprobadas
11/11

03Arquitectura

Fig. 2 · Arquitectura del sistema y estado de construcción
  • Construido
  • En curso
  • Planeado
Pregunta

En español, lenguaje natural

EnrutadorPlaneado

LLM vs clasificador entrenado vs ambas rutas

Ruta de datos · text-to-SQL

Contexto semánticoConstruido

Vistas descriptivas + documentación de clasificaciones v1

Validación del SQLPlaneado

Un solo SELECT; rechaza SET y set_config()

Ejecución de solo lecturaConstruido

Rol consulta_nlq, límite de 15 s

Tabla + SQL ejecutadoPlaneado

La consulta siempre a la vista

Ruta documental · RAG

Índice documentalPlaneado

Artículos y fracciones con su procedencia

RecuperaciónPlaneado

BM25 vs densa vs híbrida, ± reordenamiento

Generación fundamentadaPlaneado

La fidelidad se mide por separado

Respuesta + citasPlaneado

Cada afirmación apunta a su fuente

Cimientos

Almacén en PostgreSQLConstruido

Esquema en estrella · 1,285,233 filas · carga validada

Conjunto de evaluaciónEn curso

61 preguntas redactadas · verificación humana

Cualquiera de las dos rutas puede terminar en abstención. Cuando la evidencia no sustenta una respuesta, decirlo es la salida correcta.

04Notas de ingeniería

El CSV y el XLSX no coinciden.

La Secretaría de Hacienda publica cada ejercicio fiscal en CSV y en XLSX. Un cruce fila por fila mostró que no son equivalentes, así que el formato de origen se elige por año. Toda corrección queda declarada en una bitácora de normalización, porque una corrección silenciosa es indistinguible de alterar el dato.

La carga corre en una sola transacción y termina conciliando conteos de filas y totales por etapa (aprobado, devengado, pagado) contra la fuente, al peso. Cualquier diferencia revierte la carga completa. Si la bitácora de carga existe, la validación pasó.

AñoFuenteMotivo
2020.xlsxEl CSV pierde 10 filas
2021.xlsxEl CSV pierde 2 filas y deja importes en blanco
2022.xlsxEl CSV pierde 3 filas y agrega 828,067 filas de relleno
2023.xlsxEl CSV pierde 1 fila y corrompe una clave
2024.xlsxEl CSV reporta MXN 9,699 millones de más en el ramo 51
2025.csvFormatos idénticos; el CSV se lee más rápido
Tabla 1 · Formato de origen por ejercicio, de docs/bitacora_normalizacion.md
ML aplicado · En producciónTrabajo en empresa · Unitam

Predicción de abandono de clientes

Ordena a 136 mil clientes empresariales de una cadena con unas 100 sucursales según su probabilidad de dejar de comprar, con una puntuación mensual dentro del ERP en .NET de la empresa.

Los clientes en riesgo se detectaban con una heurística de recencia: una regla simple basada en cuándo compraron por última vez. El negocio necesitaba una lista priorizada sobre la cual actuar, construida a partir de siete años de historial de facturación, con un porcentaje de riesgo que significara lo que dice: un riesgo de 30% debería significar que unos 3 de cada 10 de esos clientes dejan de comprar.
PR-AUC (antes 0.567)
0.617
Brier (antes 0.260)
0.167
cortes de entrenamiento
385K
PythonLightGBMPyTorchpandasSQL ServerC# · .NET2026
Full-stack · Proyecto para clienteRepositorios privados

Plataforma inmobiliaria Casita Azul

Sitio público de propiedades y panel administrativo para una inmobiliaria: catálogo con mapas y favoritos, y una consola para gestionar propiedades, agentes y usuarios.

La inmobiliaria necesitaba publicar sus propiedades y que su personal las administrara sin tocar la base de datos: publicar inmuebles con galerías de fotos, gestionar agentes internos y externos, controlar quién administra qué y ver qué propiedades generan interés.
endpoints de API
37
commits
104
apps Angular
2
Angular 20TypeScriptFlaskPostgreSQLSupabase AuthCloudflare R2Dockerago – dic 2025

Simuladores de SO: memoria y planificación de CPU

Dos simuladores de sistemas operativos con visualización en vivo: un administrador de memoria paginada, hecho en un equipo de cinco, y un planificador de CPU.

La paginación, los aciertos de TLB, los fallos de página y las políticas de planificación son fáciles de describir y difíciles de ver. El objetivo era mostrar, paso a paso, cómo un sistema operativo asigna memoria y tiempo de CPU, y qué pasa bajo presión con muchos procesos en ejecución.
procesos máx.
50
políticas de planificación
4
reemplazo de páginas
FIFO
C99GTKMakeLinux · MinGWnov – dic 2025

Sistema de punto de venta

Ventas, inventario, clientes y usuarios para un pequeño comercio, con acceso por roles, tickets y notificaciones por correo.

Un comercio necesitaba registrar ventas en tiempo real, mantener el inventario exacto, administrar clientes y personal, y generar reportes para los gerentes, con cada rol viendo solo lo que le corresponde.
PythonFlaskMySQLJavaScriptago – dic 2025
§03Experiencia y credenciales

Tres años: del cuarto de servidores al ML en producción.

Infraestructura de TI, consultoría independiente y .NET empresarial; hoy llevo machine learning a producción dentro de un ERP que atiende a unas 100 sucursales.

Trayectoria

  1. jul 2026 – actualactual

    Auxiliar de Sistemas (Desarrollo de Software)

    Unitam Uniformes · Tampico, MX

    • Desarrollo de tiempo completo en UNITAM NT, el ERP y punto de venta de la empresa (C#, .NET Framework 4.7.1, WinForms, DevExpress, SQL Server), usado en unas 100 sucursales.
    • Implementé un modelo de abandono de clientes: puntuación mensual por lotes escrita en SQL Server y visible en los reportes del ERP. Ver el caso de estudio arriba.
    • Construí módulos de reportes, sobre una arquitectura de cinco capas, que reemplazaron los reportes armados a mano, y escribí u optimicé procedimientos en T-SQL, con lo que corregí timeouts y errores de atribución en reportes de ventas regionales.
    • Integré terminales de pago de BBVA y Banamex al punto de venta (en certificación bancaria) y automaticé la generación de pedidos para un cliente mayorista clave.
    • Levanté requerimientos con marketing, ventas y finanzas; mi evaluación técnica descartó, por ahora, una integración TikTok Shop → Shopify → ERP.
    C#.NET FrameworkDevExpressSQL ServerT-SQLPythonLightGBM
  2. ene – jun 2026

    Intercambio académico, Ingeniería Informática

    Universidad de Burgos · España

    • Minería de datos en Python (clasificación, clustering, reglas de asociación), análisis de redes con NetworkX, e ingeniería inversa y refactorización de código Java con métricas formales de calidad.
    PythonMinería de datosNetworkXJava
  3. feb – dic 2025

    Desarrollador de Software y Consultor de TI

    Solbes Soluciones Inteligentes · Tampico, MX

    • Práctica independiente para 10–12 negocios locales, de principio a fin: desde los requerimientos hasta el despliegue y el soporte.
    • Entregué software para clientes, incluida una plataforma inmobiliaria y una app de cuestionarios para un consultorio de psicología, además de sistemas de punto de venta con inventario y reportes. Scripts de automatización redujeron la captura manual en 60%.
    • Instalé servidores, redes y sistemas de videovigilancia para pequeñas empresas.
    PythonTypeScriptAngularFlaskPostgreSQLDocker
  4. ene 2023 – sep 2025

    Soporte e Infraestructura de TI (medio tiempo)

    CIYASA S.A. de C.V. · Tampico, MX

    • Único responsable de TI en las oficinas: mantuve los servidores locales con cerca de 99% de disponibilidad y configuré conmutación por falla con doble ISP, así que si un proveedor de internet falla, el otro toma el relevo.
    • Administré Google Workspace y Google Cloud, y escribí herramientas en Python para monitoreo y automatización, además de utilidades internas y portales de documentación.
    PythonLinuxGCPRedes
  5. ago 2022 – may 2027

    Ingeniería en Sistemas Computacionales

    Universidad Autónoma de Tamaulipas · Tampico, MX

    • Promedio 9.13 / 10. Tesis en curso: consultas en lenguaje natural sobre el presupuesto público de México (destacada arriba).
    • Plan de estudios con álgebra lineal, probabilidad y estadística, métodos numéricos, algoritmos, sistemas operativos, redes y bases de datos, e IA y sistemas embebidos en el último año.
    AlgoritmosSistemas operativosBases de datosIA

Reconocimientos

  • 1.er lugar · equipo

    CTF MetaRed Mexico National Championship

    Capture the Flag · 2025

  • 1.er lugar · equipo

    ANIEI CTF en ANUIES-TIC

    Capture the Flag · 2025

Capacidades

ML y datos
LightGBMPyTorchscikit-learnpandasCalibraciónText-to-SQLRAG
Lenguajes
PythonC#SQLTypeScriptCJava
Bases de datos
SQL Server · T-SQLPostgreSQLMySQLFirebaseModelado dimensional
.NET empresarial
.NET FrameworkWinFormsDevExpressArquitectura en capasReportes
Web y APIs
AngularFlaskRESTSupabaseDocker
Infraestructura y seguridad
LinuxGCPRedesMínimo privilegioCTF

§04Contacto

Construyamos sistemas que la gente pueda comprobar.

Abierto a puestos de ingeniería de software e IA empresarial, prácticas y colaboraciones de investigación, en remoto o de forma presencial. Como ciudadano español, puedo trabajar en cualquier país de la UE sin patrocinio de visa. Respondo en español o inglés.

EscríbemeGitHubLinkedInCV (PDF)