← Servicios


Ingeniería

El diseño y la construcción no son fases separadas. Una arquitectura que no puede implementarse, y un código escrito sin comprender el sistema en el que vive, producen el mismo resultado: algo que funciona hasta que la presión del uso real revela lo que nunca se pensó a fondo.

Diseñamos sistemas y escribimos el software que los hace funcionar — tratando cada decisión arquitectónica y cada línea de código como parte del mismo trabajo continuo. Ya sea que el encargo comience con un diseño desde cero, una base de código que necesita estructura, o una plataforma de infraestructura que necesita herramientas personalizadas, el trabajo comienza desde primeros principios y termina con algo que puedes entregar a la próxima persona.

Diseño de Sistemas

La primera pregunta rara vez es "¿qué tecnología?" — es "¿dónde van los límites?" Las decisiones de descomposición de servicios tomadas en una etapa temprana son costosas de deshacer. Abordamos el diseño de sistemas partiendo del modelo operativo: cómo se desplegará, monitorizará, actualizará y recuperará de un fallo, antes de comprometerse con cualquier topología de componentes.

Diseño de Red e Identidad

Las decisiones sobre topología de red se acumulan con el tiempo. Una red plana que crece hasta veinte hosts se convierte en un problema de gestión; retrofitar la segmentación VLAN en un entorno establecido es costoso. La identidad construida como un añadido posterior produce un conjunto fragmentado de credenciales — una por aplicación, sin revocación central, sin rastro de auditoría. Diseñamos ambas como preocupaciones de primer orden desde el principio.

Desarrollo de Software

Software personalizado para problemas operativos reales — el tipo de trabajo donde las herramientas estándar no encajan del todo, y el problema es suficientemente específico como para justificar algo construido correctamente. Escribimos código de producción en Rust, Python y shell, eligiendo la herramienta adecuada para cada trabajo y asegurándonos de que lo que construimos pueda ser leído, probado y mantenido por quien venga después.

Este sitio es un ejemplo funcional: un servidor web multilingüe autoalojado escrito en Rust, que sirve solicitudes con cero I/O de archivos en tiempo de ejecución, desplegado como contenedor Podman y construido por una pipeline CI de Forgejo autoalojada. Cada decisión arquitectónica es visible, auditable y reemplazable.

Rust — para servicios donde el rendimiento, el tamaño del binario y la corrección importan. Sin recolector de basura, sin asignaciones ocultas, arranca en milisegundos. Servicios HTTP construidos sobre Axum y el runtime asíncrono de Tokio.

Python — para automatización, pipelines de datos, código de pegamento y cualquier contexto donde la velocidad de iteración importa más que el rendimiento. El ecosistema para automatización de infraestructura — clientes REST, orquestación SSH, SDKs de nube — es maduro y práctico.

Shell scripting — para automatización de despliegues, scripts de inicio y todo lo que compone herramientas Unix existentes. Un script Bash bien estructurado y bien probado suele ser la respuesta correcta y la más fácil de depurar a las 2am.

Herramientas de Infraestructura

Gran parte del trabajo de desarrollo más valioso en la capa de infraestructura es la automatización que elimina la necesidad de que los humanos repitan los mismos pasos. Construimos herramientas que hablan con la API de Proxmox, generan configuración a partir de plantillas, verifican el estado del sistema y conectan pipelines CI de extremo a extremo.

Revisión y Orientación

No todos los encargos comienzan con diseño desde cero. También abordamos sistemas ya construidos — produciendo revisiones de arquitectura, identificando riesgos y escribiendo Architecture Decision Records para capturar el contexto que actualmente solo existe en la memoria de las personas.

Para quién es esto

Equipos de ingeniería que han superado su configuración inicial y necesitan tomar decisiones deliberadas sobre hacia dónde ir a continuación. Equipos de infraestructura que necesitan automatización en la que confiar — herramientas que se comportan de forma predecible y pueden entregarse a la próxima persona sin una explicación verbal. Cualquiera que haya heredado un sistema y necesite entenderlo claramente antes de cambiarlo.