Lucas Matías Frías

Abierto a posiciones senior · Remoto o híbrido

Lucas Matías Frías

Senior Software Engineer

Arquitectura, seguridad y sistemas distribuidos · Ingeniería asistida por agentes

Ocho años construyendo software. Los últimos, sistemas distribuidos orientados a eventos: microservicios que se hablan por colas, integraciones firmadas entre plataformas y la infraestructura que los sostiene en producción.

Trabajo desde el criterio, no desde la herramienta. Las preguntas que me ordenan el diseño son siempre las mismas: qué garantiza que esto es correcto, qué pasa cuando falla y quién puede acceder a qué.

Hace más de un año que construyo con agentes de código. El trabajo se corrió de escribir a definir el criterio de aceptación y las restricciones que el resultado tiene que atravesar.

Buenos Aires, Argentina · Remoto lucasmatiasfrias@live.com linkedin.com/in/lucasmatiasfrias

8añosconstruyendo software, desde 2018
7añosenseñando programación a nivel universitario
+1añoconstruyendo con agentes de código
3paísesequipos en Argentina, Uruguay y Estados Unidos
Cómo trabajo

Lo que llevo a un equipo no es un lenguaje. Es criterio sobre estas cinco cosas.

Arquitectura y diseño

Separo por razones operativas, no por moda. Cada límite del sistema tiene que poder justificarse con algo que pasa en producción.

  • Extender la herramienta que el negocio ya usa antes que levantar un sistema paralelo. Casi todo lo que construí en los últimos años es eso: un módulo, un canal o un servicio que se enchufa a una plataforma existente por sus contratos públicos, sin pedirle al equipo que cambie de herramienta.
  • Servicios con contextos de build independientes, cuando hay un motivo de disponibilidad concreto: redesplegar la interfaz no puede reiniciar el ingestor de eventos, que tiene que seguir recibiendo.
  • Orientación a eventos sobre un broker de mensajes: cola, audit log, dead-letter queue, y el enrutamiento de dominio separado del ingreso.
  • Puertos y adaptadores donde importa. En el prototipo de pagos, cambiar la pasarela simulada por la real toca un solo archivo: ni el dominio ni la interfaz se enteran.
  • Contrato primero: el sobre, los enums y los códigos de resultado definidos antes que el código que los usa.
  • Separación de plano de control y plano de datos, cache-aside, BFF y fachada — aplicados donde resuelven algo, no como catálogo.

Seguridad

No como una capa que se agrega al final, sino como la propiedad que decide la forma del sistema.

  • Criptografía verificada en los dos extremos: firma RSA-SHA256 de 2048 bits con serialización canónica sobre un sobre de pagos. Alterar un byte de la firma hace fallar la operación con el código de error del contrato.
  • Verificación de firma Ed25519 en los webhooks entrantes, antes de que el evento toque la cola.
  • Aislamiento de ejecución no confiable: contenedor efímero por turno, usuario sin privilegios, límites de memoria, CPU y procesos, y únicamente el espacio de trabajo montado.
  • Superficies de autenticación separadas: secreto entre servicios comparado en tiempo constante, y credenciales de usuario de vida corta emitidas por el plano de control.
  • Autorización por módulo sobre un catálogo de permisos explícito, con roles sembrados de forma idempotente.
  • Defensa en profundidad en el borde: un único contenedor con puertos al host, backends sin exposición pública y rutas internas rechazadas en el proxy.
  • Auditoría de superficie expuesta de un servidor: puertos escuchando en todas las interfaces, registros de autenticación y llaves autorizadas, con un plan de endurecimiento — acceso solo por llave, firewall y secretos fuera del código.

Fiabilidad y operación

Diseñar para el día en que algo falla, porque va a fallar. Lo que importa es si se puede ver, rastrear y reprocesar.

  • Idempotencia y reintentos con backoff en toda integración que cruza un límite de red.
  • Dead-letter queues y audit log: un evento que falla se puede encontrar, entender y reprocesar.
  • Healthchecks en los contenedores, logs estructurados, métricas y monitoreo activo.
  • Los trabajos programados van a un motor de workflows, no a un cron colgado del servidor. Cada ejecución queda registrada con su entrada, su salida y su error, y se puede reintentar sin entrar por SSH. Un cron que falla a las tres de la mañana no deja rastro de por qué falló.
  • Despliegue en contenedores detrás de un proxy inverso con TLS. Lo interno no sale a internet.
  • Las zonas horarias como decisión de diseño y no como valor por defecto: un sistema que razona en hora del comercio le cierra el día cuando el comercio cierra.

Metodología y equipo

El código es la mitad del trabajo. La otra mitad es que alguien más pueda entenderlo, extenderlo y confiar en él.

  • Tests como especificación ejecutable, escritos para definir el comportamiento y no como trámite posterior.
  • Documentación de arquitectura como contrato del repositorio: un golden path escrito para que todo módulo nuevo se construya igual que los anteriores.
  • Siete años enseñando Algoritmos y Programación a nivel universitario. Explicar un sistema a quien no lo conoce es la mitad del trabajo de un ingeniero senior.
  • Scrum, revisión entre pares y entregas predecibles. Trabajo con equipos distribuidos en tres países.
Ingeniería con agentes

Hace más de un año que no escribo código a mano. Especifico, restrinjo y verifico.

Reemplacé la lectura de diffs línea por línea por restricciones verificables. El trabajo se corrió de escribir código a definir el criterio de aceptación: contratos, tests como especificación ejecutable, límites de complejidad y de dependencias, y una arquitectura que hace el sistema verificable por partes.

Revisar dejó de ser leer. Es diseñar el circuito de restricciones que el resultado tiene que atravesar antes de existir en producción. Eso no es una herramienta que se aprende: es una decisión de arquitectura.

“My current strategy is to not read any of the code written by my agents. […] What I do instead is to surround the agents with extreme constraints.”
Robert C. Martin@unclebobmartin · X · 23 de julio de 2026

El circuito de restricciones, implementado

En el módulo constructor de agentes de la plataforma de apps, la frontera de seguridad no son las restricciones de herramientas del agente: es un gate de publicación del lado del servidor —análisis estático de seguridad en estado prístino más la suite de tests— que el código tiene que atravesar para llegar a desplegarse. La decisión está razonada y escrita en el código, no implícita en la configuración.

Una capa de capacidades propia

Alrededor de cincuenta procedimientos versionados sobre las APIs que uso a diario, tipados y con alcance acotado, en lugar de depender de funcionalidades genéricas. Lo relevante no es la cantidad: es que tienen gobierno. Credenciales por dominio con mínimo privilegio, estándares propios que se le imponen al agente, y ciclo de vida real — lo que se reemplaza queda marcado como obsoleto con un puntero a su sucesor, no se borra.

Un contrato reconstruido

Los manuales de integración de una pasarela de pagos se publican como PDFs escaneados, sin texto extraíble. El nombre del archivo delataba al proveedor real, que sí documenta en texto. Desde ahí: contrato reconstruido, firma criptográfica verificada en los dos extremos y tests que la ejercitan.

Portafolio

Cinco sistemas. En los dos primeros está casi todo lo que sé hacer.

Fluxing LLC · producto propio

Plataforma de automatización comercial

Servidor de autenticación y licenciamiento de la aplicación de escritorio: credenciales firmadas, hashing con bcrypt, sesión del lado del servidor para el panel de administración y auditoría de cada intento de acceso. Alrededor, los servicios de sincronización y orquestación del producto.

  • Python
  • FastAPI
  • SQLAlchemy
  • JWT
  • Docker
Ingeniería de software · 2024–2026

Proveedor de mensajería propio

Un canal de mensajería instantánea construido desde cero sobre la librería Baileys y dado de alta como proveedor nativo del CRM: sostiene la sesión, reconecta, envía y recibe por la API de la plataforma, y publica cada mensaje en el broker para que los microservicios asíncronos lo procesen. Tres lenguajes conversando por colas, con webhooks firmados, idempotencia y reintentos con backoff.

  • Node.js
  • Fastify
  • Baileys
  • Java 17
  • Spring Boot
  • RabbitMQ
  • PostgreSQL
Roche · 2022–2024

Datos y lenguaje natural sobre el data warehouse

Librería Python publicada en PyPI para consumir distintos data warehouses corporativos desde un solo cliente. Un chatbot que traduce preguntas en lenguaje natural a SQL ejecutable contra esos almacenes y responde con los resultados. Procesos ETL, tableros analíticos e ingeniería inversa de APIs públicas para integrar datos externos.

  • Python
  • FastAPI
  • SQLAlchemy
  • SQL Server
  • SSIS
  • Tableau
Experiencia

Dónde estuve y qué construí ahí.

may 2026 — actualidad

Project Manager

Otimify

Montevideo, Uruguay · remoto

Gestión de proyecto sobre la operación de la agencia y, en paralelo, diseño y construcción de la plataforma de apps propias que extiende el CRM que la sostiene.

feb 2026 — actualidad

Co-Founder

Fluxing LLC

Estados Unidos · remoto

Producto propio de automatización comercial. Arquitectura, backend, autenticación y licenciamiento, infraestructura y despliegue.

2019 — actualidad

Docente (JTP) de Programación

Universidad Nacional de José C. Paz

Buenos Aires, Argentina

Introducción a la Programación y Algoritmos y Programación, en la Licenciatura en Gestión de las Tecnologías de la Información.

mar 2024 — feb 2026

Ingeniero de software

The Old School Services

Buenos Aires, Argentina · remoto

Diseño, construcción y operación de microservicios orientados a eventos en Java 17, comunicados por un broker de mensajes y colaborando con servicios en Node.js y Python. Integración de plataformas SaaS mediante APIs y webhooks firmados definidos con contrato primero, con foco en resiliencia —reintentos con backoff, idempotencia—, observabilidad y seguridad. Desarrollo de un proveedor de mensajería instantánea propio, dado de alta como canal nativo del CRM, que sostiene la sesión, envía y recibe por la API de la plataforma y publica cada mensaje en el broker para que los servicios asíncronos lo procesen. Agentes en producción para ventas y agendamiento.

mar 2022 — oct 2024

Data Engineer

Roche

Buenos Aires, Argentina

Procesos ETL, administración de SQL Server y modelado sobre bases relacionales. Librería Python publicada en PyPI para unificar el acceso a los data warehouses de la compañía. Scraping e ingeniería inversa de APIs públicas para integrar datos externos, chatbot de lenguaje natural a SQL y tableros analíticos.

ago 2018 — sep 2025

Administrador de LMS

Universidad Nacional de José C. Paz

Buenos Aires, Argentina

Administración, configuración y despliegue del campus virtual. Frontend del sitio, bases de datos relacionales, reportes a medida y un cliente propio contra la API REST de la plataforma.

mar 2018 — ago 2018

Administrador de sitio web

Secretaría de Modernización de la Nación

CABA, Argentina

Frontend del sitio institucional, administración de servidor LAMP y de la base de datos del sistema de concursos públicos.

Formación

Título, certificaciones e idiomas.

Titulación

  • Analista Programador UniversitarioUniversidad Nacional de José C. Paz
    2016 – 2019

Certificaciones

  • Denodo — Data Virtualization, Denodo Essentials, Platform Installation y Data Modeling (2022)
  • Diseño Orientado a Objetos — EscuelaIT (2020)

Idiomas

  • Español — nativo
  • Inglés — B1

Con lo que trabajé

Las herramientas son contexto de los sistemas que construí, no la habilidad. Están acá para quien las busque.

Lenguajes
Java · Python · JavaScript · TypeScript · Dart · SQL
Backend
Spring Boot · FastAPI · Node.js · Fastify · Express · SQLAlchemy
Datos
PostgreSQL · SQL Server · MySQL · MariaDB · Oracle · SSIS · Tableau
Integración y mensajería
RabbitMQ · REST · OpenAPI · Webhooks firmados · WebSocket · n8n
Infraestructura
Docker · Docker Compose · nginx · Caddy · Linux · Git · CI/CD
Seguridad
RSA · Ed25519 · JWT · OAuth 2.0 · bcrypt · RBAC · Aislamiento en contenedores
Frontend y móvil
Flutter · React · Vite · HTML · CSS
IA
Claude Code · MCP · OpenAI API · LLMs en producción
Contacto

Lucas Matías Frías

Abierto a posiciones senior de ingeniería de software, remotas o híbridas.