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 entre 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 dimensiones conformadas alrededor de una tabla de hechos. Pasa el cursor sobre un nodo.

§01Resumen

Trabajo donde los datos empresariales se encuentran con los modelos de lenguaje. En mi empleo, opero un modelo calibrado de abandono de clientes dentro de un ERP en .NET que atiende a cerca de cien 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 la evidencia no está. Lo que une ambas cosas: sistemas reproducibles, con mínimo privilegio y honestos sobre 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 nombra por lo que puede y no puede detener.

§02Trabajo seleccionado

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

El problema, la arquitectura y cómo llega a producción, con las cifras reales detrás de cada uno.

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 PDFs 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
dimensiones conformadas
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 de relleno
2023.xlsxEl CSV pierde 1 fila y corrompe una llave
2024.xlsxEl CSV reporta MXN 9,699 M 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 ~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. El negocio necesitaba una lista ordenada con la que pudiera actuar, con un porcentaje de riesgo que signifique lo que dice, construida a partir de siete años de historial de facturación.
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 dar reportes a 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 cerca de cien 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 ~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 en una arquitectura de cinco capas que reemplazaron reportes armados a mano, y escribí u optimicé procedimientos en T-SQL, corrigiendo 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, 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: servidores locales con ~99% de disponibilidad y una red con doble ISP y conmutación por falla, sin punto único de falla.
    • Administré Google Workspace y 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 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)