Construyo
Aplicaciones web, móviles y de escritorio: de una app de finanzas en Flutter a un panel en React y .NET o un motor gráfico en C++.
Soy Christopher. Desarrollo, infraestructura y seguridad desde Pachuca, México.
Disponible para proyectos · Pachuca
Baja ↓La mayoría de los equipos reparte esto entre tres perfiles. Yo escribo la aplicación, monto el servidor donde vive y reviso por dónde se la pueden tumbar. Por eso lo que entrego llega a producción y se queda ahí.
Aplicaciones web, móviles y de escritorio: de una app de finanzas en Flutter a un panel en React y .NET o un motor gráfico en C++.
Servidores, virtualización, monitoreo y redes. Migraciones sin perder datos, respaldos que sí restauran y documentación que otro puede seguir.
Auditorías con alcance acordado, endurecimiento de sistemas y respuesta a incidentes: contener, limpiar y dejar evidencia.
Desliza →

Cada peso, a tiempo
App personal para tarjetas de crédito: lee los estados de cuenta en PDF con IA, calcula cortes, fechas límite y meses sin intereses, y proyecta si el dinero alcanza hasta el siguiente pago.
Auditoría con alcance obligatorio
Plataforma de consola que orquesta nmap, ssh-audit y testssl. No escanea nada que no esté dentro del alcance firmado del proyecto, y guarda inventario e historial.

Fondos vivos para Hyprland
Escenas animadas como fondo de escritorio, con motor propio, editor integrado al panel del sistema, una escena por monitor y mezcla de audio por programa.
RGB sin el software del fabricante
Control de iluminación para mis periféricos. Descifré el protocolo del hub observando el programa original y lo reescribí con una interfaz propia.
Todos los servidores en un tablero
Tablero interno para el equipo de infraestructura de una empresa: inventario tomado de Zabbix, métricas en vivo bajo demanda, accesos por rol con segundo factor y alertas por correo y Telegram.
Catálogo de mayorista, en línea
Tienda en línea para una empresa de tecnología: sincroniza catálogo, precios y existencias con el mayorista, y lleva el pedido del carrito al pago.
La red avisa antes que el cliente
Flujos que vigilan una red con más de mil equipos, agrupan las caídas por enlace y avisan por Telegram con contexto, en vez de cientos de alertas sueltas.
Control y movimiento masivo de inventario consumible y serializado, con auditoría de movimientos y reportes, dentro del sistema interno de una empresa.
C# · ASP.NET · MySQL · JavaScriptModelos de aprendizaje profundo entrenados para detectar violencia en video en vivo, con su frontend y backend.
YOLOv8 · MobileNetV2 · BiLSTM · FlaskPlataforma web de gestión escolar para nivel básico y medio superior.
PHP · MySQL · JavaScriptApp móvil para aprender redes con realidad aumentada, con modelos 3D propios.
Unity · BlenderTres problemas reales: cómo estaban, qué encontré, qué hice y cómo quedaron. Sin nombres de clientes.
[reparación]
34×más rápida la lectura de disco
El sistema que vigila casi 4,000 equipos de red se colgaba cada día. La consola dejaba de responder, la base de datos registraba unos 270 errores diarios y los avisos de caídas se perdían: la red quedaba sin vigilancia justo cuando fallaba.
Dos causas, una encima de la otra. La base de datos tenía índices corruptos en su historial. Y debajo, el disco de la máquina virtual usaba un controlador emulado antiguo: el hipervisor medía 1 ms por lectura, pero la base de datos esperaba 444 ms.
Cero errores desde la reparación, la consola responde en 0.02 segundos y se liberaron 866 GB. Todo quedó en una bitácora que otra persona puede seguir paso a paso.
[incidente]
6sitios comprometidos, no uno
Me pidieron revisar un sitio web que había dejado de funcionar en un servidor de hosting compartido. Parecía una falla de WordPress.
No era una falla. Un minero de criptomonedas llevaba 20 días usando el procesador al 186 %, había puertas traseras que se reinstalaban cada hora desde hacía más de un año y un complemento que robaba contraseñas al iniciar sesión. Eran seis sitios, y el servidor tenía 273 parches de seguridad sin aplicar.
Los sitios afectados se reconstruyeron en limpio y la dirección recibió un plan con prioridades para reemplazar el servidor, en vez de un «ya quedó» sin explicación.
[automatización]
16×más alertas que tiempo para revisarlas
El turno de noche recibía 859 alertas de red. Revisar cada una toma unos 10 minutos: hacía falta 16 veces el tiempo disponible. En la práctica nadie podía distinguir una caída importante entre el ruido.
Medí 59 horas de alertas reales. La mayoría eran la misma caída contada muchas veces: cuando falla un enlace, avisa cada equipo que cuelga de él.
En la medición, 2,036 caídas confirmadas quedaron en 703 incidentes. El aviso llega con contexto y antes de que llame el cliente.
Antes de escribir código o tocar un servidor, dejo por escrito qué hay, qué se quiere y qué queda fuera. En seguridad, nada se revisa sin un alcance firmado.
Entregas pequeñas que ya funcionan, con pruebas. Prefiero que veas algo real cada pocos días a una gran entrega al final.
Servidor, respaldos, monitoreo y vuelta atrás preparada. Un sistema no está terminado hasta que corre donde debe y avisa cuando algo falla.
Bitácora de lo que se hizo y por qué, para que cualquiera pueda mantenerlo sin depender de mí.
Arrástralas ✥
Cisco Networking AcademyCCNA: Introduction to Networks2023
Cisco Networking AcademyCCNA: Switching, Routing, and Wireless Essentials2024
FortinetFortinet Certified Fundamentals in Cybersecurityhasta 2027
FortinetNSE: Introduction to the Threat Landscapev3.0
FortinetNSE: Technical Introduction to Cybersecurityv2.0
Cisco Networking AcademyPython Essentials 12024Lo que hago cuando no hay nada que arreglar. Casi todo tiene que ver con paciencia y con poner las cosas en su lugar.
Escucho de todo: del dubstep a la música clásica, con bachata, metal y k-pop en el camino.
Toca una tecla También con el teclado: de la A a la L
Si tienes una aplicación por construir, una infraestructura que ordenar o un sistema que quieres revisar antes que alguien más lo haga, escríbeme.