hsolis
ES EN

CV · Guadalajara, Jalisco, Mexico

Hector Solis

Computer Engineer. I build software end to end: services and APIs in Python, Go and Rust, web interfaces, and container and cloud deployment with continuous integration. Medical imaging taught me to measure before claiming.

profile · zsh
$ whoami
Hector Solís

$ cat profile.txt
degree  Computer Engineering
base    Guadalajara, Jalisco, MX
focus   backend / web / deployment
        medical imaging, data and 3D
status  open to collaborate

$ ls projects/
in-development/   completed/
$ 

Profile

Who I am and what I work on.

I am a Computer Engineer based in Guadalajara, Jalisco. I work on software end to end: services and APIs, data processing, web interfaces and deployment. Medical imaging has been my most demanding field, and that is where I learned to read DICOM with the physics done correctly, to segment volumes and to get the resulting geometry into a 3D viewer that runs in the browser.

During my social service at the Computer Intelligence and Biorobotics Lab (CIBLab) of the University of Guadalajara I built a web DICOM viewer with AI-assisted segmentation and a PET/CT segmentation pipeline with no machine learning at all. I now hold the technical lead on a flood digital twin for the Guadalajara Metropolitan Area.

I work by one rule: what has not been measured has not been solved. The projects ship test suites, performance budgets enforced in continuous integration, and documents that record every design decision together with its justification.

Stack

Tools I use and have worked with in depth on these projects.

Languages

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

Backend and data

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

Frontend

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

Medical imaging and computing

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

Quality

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

Infrastructure

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

Experience

Where I worked and what I delivered.

Computer Intelligence and Biorobotics Lab (CIBLab)

I did my social service at CIBLab, a laboratory of the University of Guadalajara dedicated to artificial intelligence applied to medicine, biology, agronomy, robotics, industrial processes and energy. I built both projects listed below, from algorithm design through testing and deployment.

The lab combines machine learning and metaheuristic methods, and that mix shows in the two deliverables: one segments with neural networks, the other solves the same kind of problem with pure mathematical optimisation, with no prior training and no training data.

Visit the lab page

Institution
University of Guadalajara
Laboratory
Computer Intelligence and Biorobotics Lab
Period
February to October 2026
Deliverables
DICOM viewer with AI and PET/CT segmentation pipeline
Page
ciblab.github.io

Projects

Two in progress and five completed. The completed repositories are public; the ones still open are private.

In development

2026B · in progress

CUCEI · University of Guadalajara

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

Flood digital twin for the Guadalajara Metropolitan Area

A digital replica of the terrain in sync with live telemetry, to work out how much water will pool and where it will run before a storm. A team of five, with the architecture in my hands.

Languages
4
Pipeline stages
7
RAM target
2 GB
Team
5
  • A Go orchestrator that separates heavy computation from request handling, with a circuit breaker and graceful mesh degradation.
  • A C++ hydraulic engine: shallow water equations of Saint-Venant parallelised with OpenMP, against closed-source commercial packages.
  • Frame streaming over WebSockets and rendering on the client's GPU: the whole system fits in 2 GB of RAM.
Architecture in short: clients, Go orchestrator, compute workers and data sources.

2026 · in progress

CIBLab · University of Guadalajara

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

PET/CT segmentation with 3D superpixels and metaheuristic optimisation

A PET/CT segmentation pipeline with no machine learning: it replaces thresholding on 1D histograms with spatially aware, traceable segmentation.

Tests
435
Rust meshing
39×
Spatial pipeline
16.5 s
Final GLB
2.5 MB
  • PET→CT co-registration with a cubic B-spline and SLIC 3D superpixels; N-dimensional CCO optimisation over [HU, SUV, X, Y, Z, |∇HU|].
  • Rust meshing kernel with exact equivalence against NumPy: 20.5 s down to 0.53 s (about 39× faster).
  • Per-axis working grid: anisotropy drops from 2.56 to 1.56 and topological noise from 0.060 to 0.046.

Completed

2026 · completed

CIBLab · University of Guadalajara

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

InnovaMed AI: web DICOM viewer with AI-assisted segmentation

A web platform to view, segment, anonymise and export CT and MR DICOM studies. Processing and inference run on the server; 3D rendering and interaction run in the browser.

InnovaMed AI landing page: the 3D viewer with the study model, the synchronised axial, sagittal and coronal planes, and the sign-in actions.
The viewer's landing page: 3D render of the study and the three synchronised planes.
Tests
110
AI engines
3
3D volume
12.7 -> 1.67 s
Export
NRRD · DICOM
  • Migrated the Flask server to Django while preserving routes, status codes and the exact shape of every JSON response, with separate apps for the viewer, accounts and AI engines.
  • In-browser 3D rendering with VTK.js (volumetric, MIP and isosurface) resampled by physical spacing, so the thick axes of the acquisition are not degraded.
  • Three automatic segmentation engines (Swin-UNETR, SegResNet and TotalSegmentator) with compatibility declared per modality and format: the viewer hides the ones that do not apply instead of letting them fail when invoked.
  • Inference in an isolated subprocess with real per-stage progress, cancellation and timeout; the hardware probe uses find_spec so PyTorch (between 1 and 2 GB) is never loaded inside the web process.
  • /api/volume_data from 12.7 s to 1.67 s with level-1 compression, caching keyed on the volume revision and ETag plus Cache-Control validators that return 304 instead of resending 80 MB on every scene rebuild.
  • A complete access flow: a public request form with a folio, a review panel with a configurable quota and invite-based registration, with a mandatory reason on rejection and reviewer traceability.

2026

  • Python
  • Tkinter
  • PostgreSQL
  • MySQL
  • Pillow

Hospital management system

End-to-end hospital management for the clinical and administrative workflow: appointments, doctors, staff, medication and patients.

  • Two data-access layers for the same domain, PostgreSQL and MySQL, each with its own schema scripts.
  • Five domain modules and three role-based menus: administrator, doctor and staff member.

2026

  • Python
  • Tkinter
  • MySQL
  • hashlib

School administration system

A platform for the technical and pedagogical administration of an educational institution: academic offering, physical infrastructure and staff in one place.

  • Nine modules: students, degrees, groups, timetables, teachers, subjects, planning, classrooms and users.
  • Separate views for the student (timetable, enrolment and profile) and for the teacher.

2026

  • Python
  • CustomTkinter
  • MySQL

Pharmacy management system

Medical supply control, sales and supply chain, with traceability from the supplier purchase through to the final sale to the customer.

  • Seven modules: items, customers, purchases, sales, sale detail, users and warehouse.
  • A CustomTkinter interface over a data layer kept separate from the view.

2026

  • HTML
  • CSS
  • JavaScript

This page

This very site: a static page with no dependencies and no build step, with self-hosted fonts and an ASCII field drawn on a canvas.

  • ~270 kB in total, fonts included, and no third-party requests.
  • An ASCII field with ordered dithering and two opacity zones so reading is never compromised.
  • Security headers and a hashed CSP on Cloudflare Pages.

Contact

Open to collaborating on software, medical imaging and scientific computing.

Email is the fastest route. You can also reach me on LinkedIn or go through my public code on GitHub.