Código que resuelve problemas reales
Soy Ibrahim Butter Saez. Arquitectura de sistemas de alta disponibilidad, visualización de datos geoespaciales y automatización con Python. Full Stack y seguridad.
Stack principal
- Python
- React
- Next.js
- Docker
- Flask
- MapLibre
- 0
- Sistemas desarrollados
- 0
- Scripts de automatización
- 0
- Roles técnicos
- 0
- Arquitecto líder desde
01 / SISTEMAS DESARROLLADOS SwiperGSAPvanilla-tilt
Proyectos
Cada proyecto es una laptop de mi taller. Elige una y enciéndela: la pantalla es la ficha técnica con capturas y videos reales.
02 / UN DÍA EN MI CÓDIGO SVG + GSAP
Así trabajo (con todos los estados de ánimo)
ESCENA 01
Planeando la idea
Antes de escribir una línea: entender el problema, dibujar la arquitectura y definir los datos.
ESCENA 02
En la zona
Código limpio, commits pequeños y mucho café. Python, React, Flask, lo que la solución pida.
ESCENA 03
¡Apareció un bug!
Logs, depurador y calma. Cada bug resuelto es un sistema más robusto en producción.
ESCENA 04
Música + código
Audífonos puestos y flujo total: así salen las automatizaciones y los scripts ETL.
ESCENA 05
Café #4, modo zombie
Los sistemas en producción se actualizan todos los días… y el café también.
ESCENA 06
¡Deploy exitoso!
Del servidor al usuario: cuando el sistema funciona y ayuda a personas reales, todo vale la pena.
03 / TRAYECTORIA GSAP
Experiencia
Desarrollo de software gubernamental, automatización con Python y control de infraestructura de servidores críticos.
ROL DESEMPEÑADO · 2025 - Presente
Arquitecto de Software Líder & Especialista en Infraestructura TI
Ministerio del Poder Popular para la Juventud (MinJuventud)
// RETO CRÍTICO RESUELTO
“Fragmentación y dispersión de datos territoriales sin analítica en tiempo real. Se solucionó con una plataforma macro de inteligencia nacional alimentada por subsistemas y microsubsistemas, con cartografía interactiva, IA ejecutiva, automatización de datos y una infraestructura virtualizada sobre Proxmox y Docker.”
// HITOS Y DESARROLLO
- ► Arquitectura de Sistema Macro Nacional & MicrosubsistemasDiseñé y construí desde cero la arquitectura de la plataforma de inteligencia de datos territoriales, con jerarquía institucional para decisiones directivas, regionales y municipales.
- ► Cartografía Nacional & Métricas en Tiempo RealMotor de visualización geoespacial de alta escala con MapLibre/Deck.gl: mapas de calor, hotspots y telemetría en vivo.
- ► Integración de IA Multi-Modelo & Pipeline RAGRed multi-agente con modelos de lenguaje (Llama 3.3, Qwen 2.5) mediante RAG sobre bases de datos contextuales y síntesis de voz para reportes ejecutivos.
- ► Infraestructura, Virtualización y DespliegueOrquestación con Docker Compose, Portainer y administración de máquinas virtuales en Proxmox VE con entornos aislados y alta disponibilidad.
- ► Sistema de Reportes con 2FA por TelegramPlataforma del Viceministerio para cargar fichas de actividades con evidencias, flujo de aprobación por roles y autenticación en dos pasos mediante un bot de Telegram.
- ► Directorio Territorial en tiempo realAplicación móvil para el trabajo en calle con búsqueda instantánea, cascada geográfica oficial (Estado → Comuna) y control de concurrencia optimista entre operadores.
- ► Sistemas de Auditorio y Encuestas institucionalesReservas con verificación de disponibilidad en tiempo real y un sistema de encuestas con verificación por código, analítica y exportación a Excel.
- ► Bot Institucional, APIs RESTful y SDLC completoAPI REST unificada, bots para consultas y alertas, y todo el ciclo de vida: diseño, desarrollo, pruebas, producción y mantenimiento evolutivo.
// STACK APLICADO
- React (TypeScript)
- Next.js
- Node.js (Express)
- PHP 8
- Python (ETL & Big Data)
- Docker & Portainer
- Proxmox VE
- MapLibre GL & Deck.gl
- OpenRouter Multi-LLM
- Telegram Bot API
- APIs RESTful
- SQLite / MySQL / SQL Server
- RBAC Jerárquico
- Tailwind CSS
04 / AUTOMATIZACIÓN PythonGSAP
Python Scripts
¿Un proceso repetitivo, archivos en masa o reportes complejos? Si se puede pensar, se puede automatizar con Python.
SCRIPT ACTIVO
ETL Big Data & Cartografía Territorial
Extrae, limpia y cruza grandes volúmenes de datos tabulares heterogéneos. Normaliza coordenadas geográficas, resuelve inconsistencias y sincroniza los datos en esquemas SQL para cartografía en tiempo real.
// MÓDULOS CLAVE
- pandas
- openpyxl
- python-docx
- sqlite3
- re
- unicodedata
$ python etl_territorial_pipeline.py --input "dataset_territorial.xlsx" --db app_production.db
[INFO] Inicializando pipeline ETL y cargando esquemas de datos...
[INFO] Procesando matrices tabulares y entidades territoriales...
[OK] Estandarizando claves geoespaciales y nomenclaturas...
[OK] Calculando métricas de cobertura y agregaciones analíticas...
[OK] Generando índices espaciales y claves foráneas...
[SUCCESS] Sincronización completada: dataset listo para telemetría.
05 / GRÁFICOS Chart.jsGSAP
Habilidades en datos
Mapa de habilidades
Autoevaluación por área (0–100)
Proyectos por área
Calculado automáticamente desde la lista de proyectos
- Python
- Node.js / Express
- Flask
- React
- Next.js
- TypeScript
- Tailwind CSS
- Astro
- Docker
- Proxmox VE
- Portainer
- Linux
- Nginx
- MapLibre GL
- Deck.gl
- Leaflet.js
- Multi-LLM
- RAG
- Llama / Qwen
- SQLite
- SQL Server
- PostgreSQL
- MySQL
06 / INGENIERÍA INVERSA GhidraJS vanilla
Entender cómo funciona por dentro
Analizo software y protocolos para entender su comportamiento: auditoría, compatibilidad y seguridad defensiva, siempre en entornos autorizados.
- 01
Reconocimiento
Identificar tipo de binario, arquitectura, strings, imports y protecciones (file, strings, DIE).
- 02
Análisis estático
Leer el código sin ejecutarlo: desensamblar y decompilar funciones clave en Ghidra / IDA.
- 03
Análisis dinámico
Ejecutar en un entorno aislado (VM) con depurador y trazar llamadas, memoria y red.
- 04
Documentar
Renombrar funciones, reconstruir estructuras y escribir el hallazgo para poder reproducirlo.
; check_password(char *input) -- x86-64, sintaxis Intel
check_password:
push rbp
mov rbp, rsp
lea rsi, [rip+secret] ; rsi = clave almacenada
mov rdi, [rbp+0x10] ; rdi = entrada del usuario
call strcmp ; compara ambas cadenas
test eax, eax ; eax == 0 ? (iguales)
jne .denied ; si no son iguales -> denegar
mov eax, 1 ; return true
pop rbp
ret
.denied:
xor eax, eax ; return false
pop rbp
ret - Ghidra
- x64dbg
- Wireshark
- Frida
- radare2
- Burp Suite
- strings / file
- Máquinas virtuales
07 / CONTACTO
¿Construimos algo juntos?
Escríbeme y se abrirá tu correo con el mensaje listo.