Skip to content

Casos de ingeniería ​

Estos diez casos muestran cómo resolví problemas reales de producto y operación: qué limitaba el trabajo, qué decisión tomé y qué resultado obtuvo el equipo. Omito los nombres de las empresas.

Rendimiento de datos

De unos 2 segundos a 800 milisegundos

Dos segundos bastan para interrumpir una tarea. En este sistema de producción, la demora ya se notaba en recorridos importantes para los usuarios.

Seguí el problema hasta PostgreSQL y traté el recorrido de datos como un conjunto: particiones, índices, disparadores y persistencia. Después comparé los tiempos con la medición inicial.

La respuesta media bajó de unos dos segundos a unos 800 milisegundos.

Continuidad operativa

Una alternativa funcional en dos semanas

Una restricción de conectividad dejó al equipo sin una herramienta de comunicación esencial. Esperar a que volviera el acceso habría abierto un vacío en el trabajo diario.

Investigué, construí, probé y desplegué una aplicación de túnel multiplataforma y una extensión de navegador con Rust, Go, Tauri y Vue. La alternativa debía funcionar en los dispositivos que ya se usaban.

La solución restauró el acceso y redujo aproximadamente un 98 % el coste recurrente de la infraestructura asociada.

Datos sin conexión

Flujos de producto sin red

Perder la conexión no debería significar perder el trabajo. El reto era conservar cambios en vivo sin red y darles sentido al reconectar.

Guardé eventos en tiempo real con IndexedDB y creé una capa de conciliación para estados de objetos complejos. Así el trabajo podía seguir antes de sincronizarse.

Los flujos principales continuaron sin conexión y se sincronizaron al volver la red.

Arquitectura frontend

Límites claros para trabajar en paralelo

Con más desarrolladores, los flujos de datos compartidos empezaron a generar fricción. Cada función necesitaba espacio para evolucionar sin cruzar siempre los mismos límites.

Di a la aplicación Vue límites funcionales claros, eventos centralizados y propiedad predecible de los datos. La arquitectura sirvió al equipo que trabajaba en paralelo.

Los desarrolladores pudieron trabajar en paralelo y la estructura siguió usándose después del equipo inicial.

Experiencia de desarrollo

Preparación del entorno con un comando

Un entorno de desarrollo con demasiados pasos manuales convierte el primer día de una persona nueva en una sesión de depuración. La instalación se había vuelto una tarea en sí.

Trasladé los pasos repetibles a Git hooks, Bash y CI, y documenté las decisiones restantes. El traspaso pasó de una lista que memorizar a un comando que ejecutar.

Los nuevos integrantes podían preparar el entorno con un solo comando desde el primer día.

CMS y SEO

Una web editable con comportamiento de aplicación

El sitio necesitaba la facilidad de un CMS, páginas accesibles para buscadores y la fluidez de una aplicación. Perder cualquiera de esos aspectos habría debilitado la experiencia.

Uní Vue con PHP y WordPress mediante hidratación, rutas y contenido personalizados. Los editores conservaron su flujo y los visitantes pudieron navegar sin recargar toda la página.

El sitio conservó el CMS y las URL aptas para buscadores mientras ganó una navegación similar a una aplicación.

Entrega de campañas

Campaña móvil entregada en tres semanas

Una campaña móvil necesitaba datos de sedes, participación, analítica y mensajería en poco tiempo. La base Angular requerida era nueva para mí.

En tres días aprendí lo necesario para trabajar con el framework y después construí la aplicación y sus integraciones. El plazo exigía un producto completo, no pantallas aisladas.

La aplicación se entregó en tres semanas tras tres días de adaptación al framework.

Sensibilización sobre el agua

Narrativa 3D pese a los límites del navegador

La dirección creativa pedía contar una historia sobre el agua con 3D animado. Entonces WebGL tenía un soporte desigual: una escena podía funcionar en un navegador y perderse en otro.

Asumí tareas de modelado y render en Blender para crear sprites narrativos, combinados con WebGL donde el 3D en vivo era fiable. Adapté la técnica al navegador para que la historia llegara a más personas.

La historia visual pudo funcionar en distintos navegadores sin depender de 3D en tiempo real para cada escena.

Seguridad de las mujeres

Una salida discreta ante el riesgo

Para quien consultaba una campaña sobre seguridad de las mujeres en una situación de riesgo, salir podía ser tan importante como llegar. Una salida normal podía dejar un rastro evidente en la navegación actual.

Usé la API History y popstate para gestionar la propia entrada de la campaña durante una salida rápida. El objetivo era una salida discreta, sin afirmar que se borraba todo el historial del navegador.

El flujo redujo la posibilidad de que la página de la campaña quedara como una entrada evidente en el historial actual.

AR móvil

Previsualizar productos en su entorno

Una imagen muestra la forma de un producto, pero no cómo quedará en el espacio del cliente. Faltaba el contexto de la habitación.

Convertí los modelos 3D en vistas móviles WebXR y AR con Vectary. La cámara del teléfono permitió examinar escala y ubicación en contexto.

Los clientes pudieron colocar y examinar modelos de producto a través de la cámara del móvil.