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.