hsolis
ES EN

CV · Guadalajara, Jalisco

Hector Solis

Ingeniero en Computación. Construyo software de extremo a extremo: servicios y APIs en Python, Go y Rust, interfaces web, y despliegue en contenedores y en la nube con integración continua. La imagen médica me enseñó a medir antes de afirmar.

perfil · zsh
$ whoami
Hector Solís

$ cat perfil.txt
titulo  Ing. en Computación
base    Guadalajara, Jalisco, MX
foco    backend / web / despliegue
        imagen médica, datos y 3D
estado  abierto a colaborar

$ ls proyectos/
en-desarrollo/   concluidos/
$ 

Perfil

Quién soy y en qué trabajo.

Soy Ingeniero en Computación y vivo en Guadalajara, Jalisco. Trabajo en software de extremo a extremo: servicios y APIs, procesamiento de datos, interfaces web y despliegue. La imagen médica ha sido mi campo más exigente, y ahí aprendí a leer DICOM con la física correcta, segmentar volúmenes y llevar la geometría resultante a un visor 3D que corre en el navegador.

Durante mi servicio social en el Computer Intelligence and Biorobotics Lab (CIBLab) de la Universidad de Guadalajara desarrollé un visor DICOM web con segmentación asistida por inteligencia artificial y un pipeline de segmentación PET/CT sin aprendizaje automático. Ahora llevo el liderazgo técnico de un gemelo digital de inundaciones para el Área Metropolitana de Guadalajara.

Trabajo con una regla simple: lo que no está medido no está resuelto. Los proyectos tienen suites de pruebas, presupuestos de rendimiento que se comprueban en integración continua y documentos que registran cada decisión de diseño junto con su justificación.

Stack

Herramientas que uso y con las que he trabajado a fondo en estos proyectos.

Lenguajes

  • Python
  • C++
  • Go
  • Rust
  • TypeScript
  • JavaScript
  • Java
  • SQL

Backend y datos

  • FastAPI
  • Granian
  • Django
  • SQLAlchemy
  • Alembic
  • SQLite
  • axum

Frontend

  • Svelte 5
  • Vite
  • three.js
  • VTK.js
  • WebGL
  • HTML y CSS

Imagen médica y cómputo

  • pydicom
  • NumPy
  • SciPy
  • scikit-image
  • SimpleITK
  • PyTorch
  • MONAI
  • ONNX
  • GDAL
  • trimesh

Calidad

  • pytest
  • Vitest
  • Playwright
  • axe
  • ruff
  • mypy
  • clippy
  • GitHub Actions

Infraestructura

  • Docker
  • Docker Compose
  • Kubernetes
  • Redis
  • nginx
  • Cloudflare Pages
  • Linux
  • Git

Experiencia

Dónde trabajé y qué entregué.

Computer Intelligence and Biorobotics Lab (CIBLab)

Hice mi servicio social en el CIBLab, laboratorio de la Universidad de Guadalajara dedicado a la inteligencia artificial aplicada a medicina, biología, agronomía, robótica, procesos industriales y energía. Ahí desarrollé los dos proyectos de abajo, del diseño del algoritmo a las pruebas y el despliegue.

El laboratorio combina aprendizaje automático y métodos metaheurísticos, y esa mezcla se ve en los dos entregables: uno segmenta con redes neuronales y el otro resuelve el mismo tipo de problema con optimización matemática pura, sin entrenamiento previo ni datos de entrenamiento.

Visitar la página del laboratorio

Institución
Universidad de Guadalajara
Laboratorio
Computer Intelligence and Biorobotics Lab
Periodo
Febrero a octubre de 2026
Entregables
Visor DICOM con IA y pipeline de segmentación PET/CT
Página
ciblab.github.io

Proyectos

Dos en curso y cinco concluidos. El código de los concluidos es público; el de los que siguen abiertos, privado.

En desarrollo

2026B · en curso

CUCEI · Universidad de Guadalajara

  • C++
  • Go
  • Python
  • TypeScript
  • WebGL
  • Kubernetes
  • Redis
  • ONNX
  • OpenMP

Gemelo digital de inundaciones para la ZMG

Réplica digital del terreno sincronizada con la telemetría real, para calcular cuánta agua se acumulará y hacia dónde correrá antes de una tormenta. Equipo de cinco personas, con la arquitectura a mi cargo.

Lenguajes
4
Etapas del pipeline
7
Objetivo de RAM
2 GB
Equipo
5
  • Orquestador en Go que separa el cómputo pesado de las peticiones, con Circuit Breaker y degradación elegante de la malla.
  • Motor hidráulico en C++: ecuaciones de aguas poco profundas de Saint-Venant paralelizadas con OpenMP, frente a los paquetes comerciales de código cerrado.
  • Streaming de fotogramas por WebSocket y render en la GPU del cliente: el sistema cabe en 2 GB de RAM.
Arquitectura resumida: clientes, orquestador en Go, workers de cómputo y fuentes de datos.

2026 · en curso

CIBLab · Universidad de Guadalajara

  • Python
  • Rust
  • FastAPI
  • Svelte 5
  • three.js
  • NumPy
  • Docker

Segmentación PET/CT con supervóxeles 3D y optimización metaheurística

Pipeline de segmentación PET/CT sin aprendizaje automático: sustituye la umbralización sobre histogramas 1D por una segmentación espacialmente consciente y trazable.

Pruebas
435
Mallado en Rust
39×
Pipeline espacial
16.5 s
GLB final
2.5 MB
  • Co-registro PET→CT por B-spline cúbico y supervóxeles SLIC 3D; optimización CCO N-dimensional sobre [HU, SUV, X, Y, Z, |∇HU|].
  • Kernel de mallado en Rust con equivalencia exacta frente a NumPy: 20.5 s a 0.53 s (unas 39 veces más rápido).
  • Rejilla de trabajo por eje: la anisotropía baja de 2.56 a 1.56 y el ruido topológico de 0.060 a 0.046.

Concluido

2026 · concluido

CIBLab · Universidad de Guadalajara

  • Django
  • Python
  • VTK.js
  • PyTorch
  • MONAI
  • SimpleITK
  • Docker

InnovaMed AI: visor DICOM web con segmentación asistida por IA

Plataforma web para visualizar, segmentar, anonimizar y exportar estudios DICOM de CT y RM. El procesado y la inferencia corren en el servidor; el render 3D y la interacción, en el navegador.

Portada de InnovaMed AI: el visor 3D con el modelo del estudio, los planos axial, sagital y coronal sincronizados, y los accesos de sesión.
Portada del visor: render 3D del estudio y los tres planos sincronizados.
Pruebas
110
Motores de IA
3
Volumen 3D
12.7 -> 1.67 s
Exportación
NRRD · DICOM
  • Migración del servidor Flask a Django conservando rutas, códigos de estado y la forma exacta de cada respuesta JSON, con aplicaciones separadas para el visor, las cuentas y los motores de IA.
  • Render 3D en el navegador con VTK.js (volumétrico, MIP e isosuperficie) remuestreado por espaciado físico, para no degradar los ejes gruesos de la adquisición.
  • Tres motores de segmentación automática (Swin-UNETR, SegResNet y TotalSegmentator) con compatibilidad declarada por modalidad y formato: el visor oculta los que no aplican en lugar de dejar que fallen al invocarlos.
  • Inferencia en subproceso aislado con progreso real por etapas, cancelación y timeout; la sonda de hardware usa find_spec para no cargar PyTorch (entre 1 y 2 GB) dentro del proceso web.
  • /api/volume_data de 12.7 s a 1.67 s con compresión en nivel 1, caché por revisión del volumen y validadores ETag y Cache-Control que devuelven 304 en lugar de retransmitir 80 MB en cada reconstrucción de la escena.
  • Flujo de acceso completo: solicitud pública con folio, panel de revisión con cupo configurable y registro por invitación, con motivo obligatorio al rechazar y trazabilidad del revisor.

2026

  • Python
  • Tkinter
  • PostgreSQL
  • MySQL
  • Pillow

Sistema de gestión hospitalaria

Sistema integral de gestión hospitalaria para el flujo clínico y administrativo: citas, doctores, empleados, medicamentos y pacientes.

  • Dos capas de acceso a datos para el mismo dominio, PostgreSQL y MySQL, cada una con sus scripts de creación.
  • Cinco módulos de dominio y tres menús por rol: administrador, doctor y empleado.

2026

  • Python
  • Tkinter
  • MySQL
  • hashlib

Sistema de control escolar

Plataforma para la administración técnica y pedagógica de una institución educativa: oferta académica, infraestructura física y personal en un solo entorno.

  • Nueve módulos: alumnos, carreras, grupos, horarios, maestros, materias, planeación, salones y usuarios.
  • Vistas separadas para el alumno (horario, inscripción y perfil) y para el maestro.

2026

  • Python
  • CustomTkinter
  • MySQL

Sistema de gestión de farmacia

Control de suministros médicos, ventas y cadena de suministro, con trazabilidad desde la compra al proveedor hasta la venta al cliente.

  • Siete módulos: artículos, clientes, compras, ventas, detalle de venta, usuarios y almacén.
  • Interfaz con CustomTkinter sobre una capa de datos separada de la vista.

2026

  • HTML
  • CSS
  • JavaScript

Esta página

Este mismo sitio: una página estática sin dependencias ni paso de compilación, con tipografía autoalojada y un fondo ASCII dibujado en canvas.

  • ~270 kB en total, fuentes incluidas, y cero peticiones a terceros.
  • Fondo ASCII con tramado ordenado y dos zonas de opacidad para no comprometer la lectura.
  • Cabeceras de seguridad y CSP con hashes en Cloudflare Pages.

Contacto

Abierto a colaborar en software, imagen médica y cómputo científico.

La vía más rápida es el correo. También puedes escribirme por LinkedIn o revisar el código público en GitHub.