~/krizcold
Abierto a oportunidades, remoto o Santiago, Chile

Cristián Acuña

Ingeniero full-stack. Construyo la infraestructura sobre la que corre mi propio código.

Construyo producto a lo largo de todo el stack, y después construyo también las capas de abajo: pipelines de release, proxies de autenticación, empaquetado de contenedores, un plano de control distribuido para mi propia plataforma de bots. Dos años y nueve meses de eso como contratista remoto para una empresa francesa, en una plataforma open source de self-hosting, más un pipeline LLM en producción que mantiene un filtro por reglas delante del modelo.

Santiago, Chile, UTC−4, solape completo con la costa este de EE.UU.github.com/krizcoldLinkedInDocker Hub
01

Sobre mí

Soy ingeniero de plataforma y DevOps, con alcance full-stack en TypeScript.

Durante dos años y nueve meses trabajé como contratista remoto para una empresa francesa, Aptero. Entré por el lado de WebXR, construyendo productos 3D inmersivos para Microsoft Teams y Opal, su herramienta de autoría, y me moví a plataforma y DevOps cuando la empresa pivotó a Yundera, una plataforma open source de self-hosting construida sobre CasaOS. Ahí fui responsable del empaquetado del catálogo de aplicaciones en contenedores y de la automatización de releases, y escribí el tooling del que terminó dependiendo el resto del equipo: el servicio de build que corría dentro del pipeline de release, y el proxy inverso de autenticación que terminó siendo la capa base del SSO de la plataforma.

En paralelo construí Appbogados, una plataforma de matching de servicios legales hoy en producción en Chile. Un filtro determinista por reglas acota candidatos por región, comuna, vigencia y credenciales antes de que un paso con OpenAI etiquete el caso contra una taxonomía legal y puntúe a cada abogado. Mantener las reglas delante del modelo es lo que mantiene acotados el costo y los modos de falla.

El proyecto que más me gustaría que alguien leyera es el que nadie me pagó. Empezó como un bot de Discord y creció, overhaul tras overhaul, hasta ser tres repos de plataforma: un plano de control de sharding multi-nodo con leases de fencing token (term, epoch), colocación de shards por menor carga y migración de guilds en vivo en dos fases; una capa de persistencia intercambiable donde el backend Postgres se auto-provisiona el esquema y fuerza un único escritor con compare-and-swap, así las escrituras de un nodo depuesto fallan en la base de datos en vez de competir; un esquema de módulos para que otros construyan encima, donde una misma definición de panel se renderiza en Discord y en el navegador; y un servicio de orquestación que toma cualquier repo o imagen pública y la convierte en un contenedor corriendo, sobre siete runtimes, con consola, explorador de archivos y logs en vivo en la UI web. Corre en mis propias máquinas, detrás de Caddy y Authelia, desde imágenes multi-arquitectura construidas en GitHub Actions.

En paralelo está Soundbinder, una soundboard en Rust y Tauri donde estoy aprendiendo Rust en serio y no solo leyendo sobre él.

Español nativo, inglés C2. Abierto a puestos de plataforma, DevOps, infraestructura o full-stack, remoto o en Santiago.

02

Experiencia

Desarrollador WebXR → Ingeniero de Plataforma y DevOps Aptero

Ago 2023 a May 2026, 2 años 9 meses
Contrato, Remoto desde Chile hacia Francia

Responsable del empaquetado del catálogo de aplicaciones en contenedores y de la automatización de releases de Yundera, plataforma open source de self-hosting. Escribí el Yundera Dev Kit, servicio containerizado que compila desde GitHub hacia el registry y corría como contenedor de build en el pipeline: 113 commits, 14 releases, publicado en GHCR y Docker Hub.

Construí AppShield, un proxy inverso de autenticación reutilizable con tres modos: hash, usuario y contraseña, y OIDC. Terminó siendo la capa base sobre la que se construyó el SSO con Caddy de la plataforma. Probado frente a Stremio, Jellyfin, Plex y code-server, con WebSockets, streaming y subidas grandes sin configuración por aplicación.

Construí Appbogados, plataforma de matching de servicios legales hoy en producción en Chile.

Entré como desarrollador WebXR en los productos 3D inmersivos de Aptero para Microsoft Teams y en Opal, su herramienta de autoría.

TypeScriptNode.jsExpressNext.jsPostgreSQLDockerDocker ComposeNGINXCaddyOIDCGitHub ActionsGHCRLinuxOpenAIThree.jsWebXR

Desarrollador Independiente

Jun 2021 - Presente
Cuenta propia, Chile

El principal es la plataforma distribuida de bots de Discord, tres repos públicos, TypeScript, construida solo. Un plano de control de sharding multi-nodo con protocolo master/worker sobre WebSocket de 28 tipos de mensaje, leases con fencing tokens, colocación de shards por menor carga y migración de guilds en vivo en dos fases; una capa de persistencia intercambiable con backends de archivo JSON y PostgreSQL, donde Postgres fuerza un único escritor con compare-and-swap; un esquema de módulos con el que otros desarrolladores construyen encima; y un servicio de orquestación Docker que toma cualquier repo o imagen pública sobre siete runtimes y expone consola, explorador de archivos y logs en vivo por WebSocket.

Fuera de eso, trabajo por encargo y proyectos propios en software, herramientas de desarrollo, videojuegos, mecánicas custom y motores. Todo de principio a fin: investigación, arquitectura, construcción y entrega. Soundbinder es el otro activo; lo anterior es sobre todo GameMaker (miles de horas registradas en GML), assets 3D propios en Blender, y una corriente constante de trabajos de scripting y automatización.

TypeScriptNode.jsPostgreSQLDockerWebSocketReactCaddyAutheliaGitHub ActionsRustTauri

Técnico en Control Automatizado DreamLabs

Mar 2021 - Jun 2021
Tiempo completo / Contrato, Chile

Diseñé un banco de pruebas como prueba de concepto, de principio a fin. Dimensioné el modelo y la lista de componentes, apoyé la programación, contacté proveedores para cotizar y armé el banco físicamente.

Formación

Universidad Técnica Federico Santa María (USM)
Técnico Universitario en Robótica y Mecatrónica
2017 - 2021, Titulado, modalidad presencial
03

Proyectos

Distributed Discord bot platform

Plano de control, capa de datos, servicio de build

Tres repos y un solo sistema, diseñado y construido solo. Un plano de control de shards multi-nodo, escrito en vez de usar el ShardingManager de discord.js, con protocolo master/worker sobre WebSocket de 28 mensajes, leases con fencing tokens (term, epoch), pacing de identify guiado por el maxConcurrency del propio gateway, colocación por menor carga puntuada según capacidad, CPU y lag del event loop, y migración de guilds en vivo en dos fases. Debajo, una capa de persistencia intercambiable cuyo backend Postgres particiona por hash los datos de guild en 32 y fuerza un único escritor con compare-and-swap, así las escrituras de un nodo depuesto fallan en la base de datos. Al lado, un servicio de orquestación que convierte cualquier repo o imagen pública en un contenedor corriendo, sobre siete runtimes, con consola, explorador de archivos y logs en vivo en el navegador.

TypeScriptNode.jsPostgreSQLDockerWebSocketReactOAuth
github.com/krizcold/docker-discord-bot-manager

AppShield

Capa base del SSO de Yundera

Proxy de autenticación NGINX liviano para apps self-hosted, con tres modos: hash / token de API para acceso de máquina, usuario y contraseña para acceso interactivo, y SSO vía OIDC sin configuración. Construido para Yundera, donde terminó siendo la capa base sobre la que se levantó el SSO de la plataforma. Defaults sensatos de buffering y timeouts, así WebSockets, streaming y subidas grandes funcionan sin caso especial por aplicación.

NGINXExpressOIDCDockerBash
github.com/Yundera/Nginx-hash-lock

Soundbinder

Proyecto personal de largo aliento

Soundboard avanzada en Rust, Tauri y TypeScript, pensada como alternativa seria a Soundpad. Windows primero, con soporte multiplataforma en la hoja de ruta. Proyecto personal de largo aliento, y donde estoy aprendiendo Rust en serio.

RustTauriTypeScript
Proyecto privadoRepositorio privado, puedo mostrarlo en una llamada si te interesa
2a 9m
Contratista remoto para Francia
5+ años
Dev independiente desde 2021
14
Releases publicados en Yundera Dev Kit
13+ años
GameMaker (GML)
ES / EN
Español nativo, inglés C2
04

Habilidades

Infraestructura y plataforma

DockerDocker ComposeNGINXCaddyOIDC / AutheliaForward-auth y proxies inversosWireGuardGitHub ActionsGHCR / Docker HubLinuxCasaOS

Sistemas distribuidos

Planos de control multi-nodoLeases con fencing tokensEscritor único vía compare-and-swapMigración de carga en vivoProtocolos de control sobre WebSocket

Construido para mi propia plataforma de bots: el protocolo de leases, el scoring de colocación y el handshake de migración son míos. Implementado y corriendo en mis máquinas, no probado sobre una flota, y lo diría así en una entrevista.

Backend

Node.jsExpressPostgreSQLFirebaseAPIs RESTWebSocket

Lenguajes y programación

TypeScriptJavaScriptPythonRustShell / BashGMLC#LuaPawnC

TypeScript es mi lenguaje profesional principal. GML es el más antiguo que sigo usando, 13+ años. Rust lo estoy aprendiendo a través de Soundbinder.

IA en producción

Pipelines LLM con pre-filtro determinista y scoringAPI de OpenAIProgramación asistida por IA dentro de un flujo normal de revisión y testing

Escribía software mucho antes de los LLM. La IA va dentro de la misma revisión y testing que aplicaría a cualquier código, nunca como reemplazo de entenderlo. Appbogados es donde ese enfoque llegó a producción.

Frontend

ReactNext.jsThree.jsWebXRTauriHTML5CSSGLSL ES (shaders)

3D y diseño

Blender (modelado, texturizado, rigging, animación)Autodesk InventorFreeCADLibreCADAdobe PhotoshopGIMP

Blender es el que llevo más tiempo usando, 10+ años y 1000+ horas recientes, pipeline completo desde modelado hasta animación.

Robótica y hardware

Universal RobotsArduinoRaspberry PiPLC SiemensDiseño de circuitos electrónicosRedes TCP/IPCisco Packet TracerCoppeliaSim

Idiomas

Español (nativo)Inglés (C2 / EF-SET)
05

Contacto

Abierto a puestos de plataforma, DevOps, infraestructura o full-stack. Remoto, o presencial en Santiago. Trabajo en UTC−4, un día completo de solape con la costa este de EE.UU.

[email protected]