Desarrollo Full Stack · Arquitectura · Seguridad

Ivan Fibiger

Construyo sistemas completos, desde el análisis del problema hasta la puesta en marcha.

Trabajo con backend, frontend, bases de datos, despliegue, documentación y seguridad, buscando soluciones claras, mantenibles y preparadas para uso real.

Mi enfoque no está solo en construir pantallas, sino en entender el problema, diseñar una buena solución y llevarla a producción.

Ámbito técnico

Qué construyo

Construyo sistemas completos donde no alcanza con que la pantalla funcione. También importan los datos, los permisos, la trazabilidad, la seguridad, la integración con otros sistemas y el comportamiento ante errores.

Trabajo principalmente sobre aplicaciones web, APIs backend, paneles de administración e integraciones entre sistemas. Me interesa que cada proyecto tenga una base técnica clara: arquitectura entendible, reglas de negocio bien modeladas, validaciones, auditoría, documentación y despliegue reproducible.

Áreas de trabajo

Sistemas de gestión
Plataformas para organizar procesos internos, usuarios, roles, permisos, formularios, expedientes, turnos y flujos administrativos.
Backend y APIs
Servicios backend para exponer datos, aplicar reglas de negocio, gestionar autenticación, controlar permisos, validar información y registrar operaciones importantes.
Aplicaciones web
Interfaces para operación diaria: paneles, formularios, dashboards, búsquedas, filtros, estados y flujos de trabajo.
Integraciones
Conexión entre sistemas, servicios externos, procesos automáticos, intercambio de datos y adaptación de información proveniente de plataformas existentes.
Seguridad aplicada
Diseño de permisos, control de acceso, validación de entradas, trazabilidad, manejo seguro de errores y reducción de superficie de ataque.
Automatización e IA
Experimentos controlados para automatizar procesos, asistir tareas técnicas, consultar documentación y trabajar con información en contextos acotados.
Documentación técnica
Arquitectura, decisiones técnicas, contratos de API, guías de despliegue, bitácoras de implementación y documentación de mantenimiento.
Metodología

Cómo pienso los sistemas

Un sistema no termina cuando compila. Lo importante aparece después: cuando cambia una integración, cuando hay que auditar qué se tocó, cuando algo falla o cuando lo mantiene alguien que no lo escribió.

No diseño para la demostración. Diseño para producción: para que el sistema se pueda mantener, desplegar, auditar y mejorar sin depender de que yo esté al lado.

  1. Diseño asumiendo que algo va a fallar

    Lo externo cambia, se cae o responde distinto a lo esperado. Por eso prefiero estados explícitos, errores manejados con claridad y procesos que puedan retomarse sin romper datos.

  2. Prefiero lo explícito antes que lo ingenioso

    El código ingenioso suele depender demasiado de quien lo escribió. Prefiero soluciones claras, trazables y fáciles de revisar.

  3. Documento lo que el código no puede contar solo

    El código muestra qué hace. La documentación explica por qué se decidió así, qué alternativas se descartaron y qué hay que tener en cuenta para mantenerlo.

  4. Pruebo donde duele

    No me interesa inflar cobertura por cumplir. Prefiero asegurar las reglas críticas, los permisos, los casos borde y los flujos donde un error cuesta caro.

  5. Pienso en quien mantiene

    Logs útiles, trazabilidad, errores entendibles, configuración clara y despliegue reproducible. El sistema tiene que poder entenderse sin hacer arqueología.

Casos de estudio

Proyectos destacados

Sistemas construidos para resolver problemas reales en contextos operativos reales.

Plataforma municipal Operativo
Oficina Virtual Municipal
Plataforma web municipal orientada a centralizar el acceso digital de ciudadanos y agentes municipales a servicios, trámites y módulos administrativos internos. El proyecto funciona como una oficina virtual: permite autenticación centralizada, gestión de perfiles, catálogo dinámico de aplicaciones, separación de accesos por tipo de usuario y módulos operativos para distintas áreas del municipio. Fue diseñado como un monolito modular con frontend Angular, backend NestJS y base de datos PostgreSQL, priorizando seguridad, trazabilidad, mantenibilidad y capacidad de crecimiento sin caer en una arquitectura innecesariamente compleja.
Frontend Backend Datos Seguridad
Problema
Plataforma municipal real. Portal único para ciudadanos y agentes. Arquitectura de monolito modular. Frontend Angular modular. Backend NestJS organizado por dominios. Catálogo dinámico de aplicaciones. Permisos diferenciados por perfil de usuario. Base preparada para múltiples módulos municipales. Auditoría de acciones relevantes. Infraestructura contenerizada. Proyecto aplicado a un contexto institucional real.
AngularNestJSTypeScriptPostgreSQLDockerNginx
Plataforma de identidad y acceso Operativo
Sistema de Acceso Centralizado
Sistema de identidad y acceso centralizado para aplicaciones municipales, diseñado para ordenar la autenticación de ciudadanos y agentes dentro de una capa institucional común. La solución permite integrar aplicaciones mediante estándares modernos de identidad, separar audiencias, gestionar perfiles de usuario y reutilizar información de acceso de forma consistente dentro del ecosistema municipal. El objetivo principal fue reducir la duplicación de logins, mejorar el control de acceso a sistemas internos y preparar una base segura para futuras aplicaciones digitales.
Frontend Backend Datos Seguridad
Problema
Sistema IAM real para contexto municipal. Base común de autenticación para múltiples aplicaciones. Separación entre ciudadanos y agentes municipales. Integración con estándares modernos de identidad. Configuración versionada y reproducible. Automatización de validaciones operativas. Auditoría de eventos relevantes. Preparado para integrar nuevas aplicaciones municipales. Reducción de duplicación de logins y usuarios. Proyecto clave dentro del ecosistema Mi Patagones.
PostgreSQLDockerDocker ComposeNginxPythonNode.jsAngularNestJS
Backend / API Gateway / Integración con terceros Operativo
Gateway de Pagos
Diseñé y desarrollé un gateway backend para integrar sistemas municipales con un proveedor externo de pagos QR. La solución desacopla los sistemas internos del contrato técnico del proveedor, normaliza la generación y seguimiento de pagos, procesa notificaciones asíncronas, permite conciliación operativa y brinda herramientas internas para administrar el ciclo de vida de una deuda o pago. El proyecto fue construido con NestJS, PostgreSQL y Docker, priorizando robustez, trazabilidad, seguridad, idempotencia y operación diaria por parte de equipos no técnicos.
Frontend Backend Datos Seguridad
Problema
Gateway backend real para integración de pagos QR. Desacoplamiento entre sistemas municipales y proveedor externo. Procesamiento de deudas individuales y por lotes. Recepción y normalización de eventos asincrónicos. Conciliación operativa de pagos y estados. Panel interno para operación diaria. Trazabilidad completa del ciclo de vida del pago. Diseño preparado para reintentos, fallos parciales y duplicados. Arquitectura modular con separación de responsabilidades. Infraestructura contenerizada y documentada.
NestJSTypeScriptPostgreSQLDockerNode.js
Escritura técnica

Bitácora técnica

Análisis, decisiones y notas de sistemas reales. No tutoriales genéricos.

Investigación

Laboratorio

Zona de exploración técnica. Experimentos documentados, investigaciones activas y notas de aprendizaje.

Documentado LAB-001
Pentest a Metasploitable 3 — De reconocimiento a root
Laboratorio de pentesting en entorno aislado sobre Metasploitable 3 (Ubuntu 14.04 LTS), aplicando una metodología completa: reconocimiento de hosts, escaneo de puertos y servicios, análisis de vulnerabilidades, explotación remota y escalada de privilegios hasta root. Incluye explotación del backdoor de UnrealIRCd (CVE-2010-2075) para RCE sin autenticación y escalada vía abuso de permisos en el grupo docker. Cierra con recomendaciones de remediación para cada hallazgo crítico.
Kali LinuxNmapNessusMetasploit FrameworkDockerVirtualBox
Practiqué el ciclo completo de un pentest siguiendo metodología estándar, desde el descubrimiento de hosts activos hasta la post-explotación. Reforcé el uso de Nmap (NSE) y Nessus para priorizar vulnerabilidades por criticidad, la explotación de un servicio troyanizado vía Metasploit, y el reconocimiento de vectores de escalada de privilegios por configuraciones inseguras (grupo docker). Sobre todo, entendí la importancia de documentar el razonamiento detrás de cada decisión y de cerrar el ciclo con remediación, no solo con la intrusión.
Documentado LAB-002
Big Data y Machine Learning — Clasificación, clustering y análisis de datos
Colección de proyectos de ML desarrollados en formación académica: detección de fake news con TF-IDF y ensamble (99% accuracy), clasificador de canciones de Spotify comparando 6 algoritmos con GridSearch (Random Forest, 76%), clustering de zonas por criminalidad con K-Means y método del codo, y análisis exploratorio de ventas con Plotly. Foco en metodología: comparación de modelos, ajuste de hiperparámetros y lectura crítica de resultados.
Pythonscikit-learnpandasNumPyMatplotlibSeabornPlotlyJupyter
Reforcé el ciclo completo de un proyecto de ML supervisado y no supervisado, desde la exploración del dataset hasta la evaluación con validación cruzada y curvas de aprendizaje. Sobre todo, entendí la importancia de la lectura crítica: cuestionar un accuracy sospechosamente alto en vez de celebrarlo, y reconocer cuándo los datos no sostienen una hipótesis. Es la base sobre la que apoyo mi próximo paso hacia ciencia de datos e IA.
Contacto

Si necesitás construir un sistema serio, podemos hablar.

Integrar procesos, bajar una idea a una solución técnica concreta, o simplemente analizar un problema juntos.

Contactar