Senior Frontend Engineer

Arquitectura frontend robusta, interfaces que escalan y código que otros disfrutan mantener.
Angular · React · Ionic

6+ años de experiencia
50+ proyectos entregados
OSS contribuidor activo

sobre_mí.

No soy un desarrollador que escribe código. Soy un ingeniero que diseña soluciones y las traduce en interfaces que funcionan, escalan y se mantienen.

Llevo más de 6 años construyendo productos digitales en equipos de alto rendimiento. He trabajado desde startups que necesitaban velocidad extrema hasta empresas que exigían arquitecturas enterprise con estándares rigurosos. En ambos escenarios, mi objetivo es el mismo: entregar software que genere impacto real.

Mi curiosidad tecnológica no tiene interruptor de apagado. Exploro constantemente desde nuevos paradigmas de estado hasta optimizaciones de rendering, pasando por hardware — sí, tengo opiniones fuertes sobre switches de teclados mecánicos. Esa misma curiosidad me ha llevado a contribuir a proyectos open source, porque creo que el conocimiento que no se comparte es conocimiento que se pierde.

Creo en la simplificación agresiva: el mejor código no es el más inteligente, es el que cualquier persona del equipo puede entender, extender y confiar. La complejidad accidental es el enemigo. La claridad es la feature más importante.

stack.

No colecciono logos de tecnologías. Cada herramienta aquí representa experiencia real en producción, decisiones de arquitectura fundamentadas y horas de profundización técnica.

Advanced

Testing

Jest, Cypress, Playwright, Testing Library. TDD cuando suma valor. Tests que documentan comportamiento, no implementación.

Advanced

Arquitectura

Micro-frontends, module federation, monorepos con Nx, clean architecture, domain-driven design en frontend, dependency injection patterns.

Advanced

Performance

Core Web Vitals, bundle optimization, tree shaking, code splitting, rendering strategies, profiling con DevTools, Lighthouse CI.

Advanced

Dev Experience

CI/CD pipelines, ESLint custom rules, Prettier, Husky, conventional commits, mono-repo tooling, Storybook, documentación técnica.

Advanced

UI/UX Engineering

Design systems, CSS architecture (BEM/utility), animaciones performantes, accesibilidad WCAG, responsive design avanzado, Figma-to-code.

proyectos.

Gestión Tributaria Municipal

Fullstack Developer

Contexto

Mi primer proyecto profesional en un equipo de más de 200 personas. Plataforma de gestión de impuestos para ayuntamientos que manejaba millones de registros tributarios. Stack basado en Oracle PL/SQL, .NET Framework y JavaScript/HTML en el frontend.

Mi rol

Entré como junior y en poco tiempo ascendí a analista programador. Trabajé en todas las capas del sistema: desde procedimientos almacenados en PL/SQL hasta interfaces web completas. Aquí entendí qué significa trabajar en un equipo grande con procesos reales de desarrollo.

Aprendizaje clave

Aprendí los fundamentos del desarrollo profesional: control de versiones en equipos grandes, revisiones de código, documentación técnica y la importancia de escribir código que otros puedan mantener. Este proyecto me enseñó que el software no es solo código — es comunicación.

Carpeta Ciudadano

Frontend Developer

Contexto

Plataforma digital para que los ciudadanos gestionaran sus trámites municipales online. Mi primer proyecto profesional con Angular, con una cantidad de lógica de negocio en frontend que superaba cualquier cosa que hubiera hecho antes.

Mi rol

Desarrollo completo de módulos frontend en Angular. Me enfrenté a formularios complejos con validaciones dinámicas, gestión de estados y flujos de navegación no triviales. Fue el proyecto donde me enamoré del frontend.

Aprendizaje clave

Descubrí que el frontend no era "la parte fácil" sino un mundo con profundidad técnica enorme. Angular me mostró la importancia de la arquitectura en aplicaciones complejas. Punto de inflexión en mi carrera hacia la especialización frontend.

Tasación Inmobiliaria — Web

Frontend Developer

Contexto

Aplicación web de tasación inmobiliaria en una empresa pequeña con un proyecto muy exigente. Angular en versiones modernas con mantenimiento correctivo y evolutivo constante. Un ritmo de trabajo que exigía solidez técnica y autonomía.

Mi rol

Desarrollo y mantenimiento de la plataforma web completa. Correcciones que requerían debugging profundo y evolutivas que exigían diseñar soluciones escalables. Trabajé con versiones modernas de Angular aplicando las mejores prácticas del ecosistema.

Aprendizaje clave

Consolidé mis habilidades frontend. Entendí la diferencia entre "saber usar un framework" y "dominar un framework". El correctivo me enseñó a leer código ajeno con rigor; el evolutivo, a planificar cambios sin romper lo existente.

Tasación Inmobiliaria — Mobile

Mobile Developer

Contexto

Versión móvil de la plataforma de tasación inmobiliaria. Mi primer proyecto profesional con Ionic, igual de exigente que su versión web. Los tasadores necesitaban una herramienta fiable en campo con funcionalidades offline.

Mi rol

Desarrollo de la app móvil con Ionic sobre Angular. Adapté funcionalidades complejas de la versión web al entorno mobile, trabajando con plugins nativos y optimizando la experiencia para dispositivos con recursos limitados.

Aprendizaje clave

Aprendí que el desarrollo mobile tiene sus propias reglas: gestión de memoria, ciclo de vida de la app, interacción con hardware nativo y la importancia crítica de la experiencia offline. Ionic me demostró el poder del desarrollo híbrido bien hecho.

Plataforma de Formación Interna

Frontend Lead

Contexto

Sistema de gestión de cursos internos para una organización. Proyecto que diseñé y construí íntegramente desde cero, con trato directo con el cliente. Angular para la web e Ionic para la app móvil, ambas arquitecturas definidas por mí.

Mi rol

Arquitectura completa, toma de decisiones técnicas, desarrollo full de web y mobile, y comunicación directa con stakeholders. Mi primer proyecto con control total del producto técnico de principio a fin.

Aprendizaje clave

Descubrí que puedo llevar un proyecto solo de principio a fin. Aprendí a tomar decisiones de arquitectura con responsabilidad total, gestionar expectativas del cliente y balancear deuda técnica con entrega de valor. La autonomía me hizo crecer exponencialmente.

Gestión de Recursos Internos

Frontend Lead

Contexto

Plataforma de gestión de recursos internos para optimizar procesos organizacionales. Otro proyecto construido enteramente por mí, desde la definición de la arquitectura hasta la entrega final. Angular + Ionic, misma dinámica de autonomía total.

Mi rol

Diseño de arquitectura, desarrollo completo web y mobile, y gestión del ciclo de vida del proyecto. Apliqué todo lo aprendido en proyectos anteriores para entregar un producto robusto y mantenible con mayor eficiencia.

Aprendizaje clave

Confirmé que la experiencia acumulada se traduce en velocidad y calidad. Patrones que antes me costaban semanas ahora los implementaba en días. Este proyecto consolidó mi capacidad como senior capaz de liderar proyectos de forma autónoma.

Plataforma Documental con IA

Fullstack Developer

Contexto

Plataforma documental para un ayuntamiento con integración de inteligencia artificial. Mi primer proyecto profesional con React y Python, y mi primera incursión en IA aplicada. Un salto de stack que amplió significativamente mi perfil técnico.

Mi rol

Desarrollo fullstack completo: frontend en React y backend en Python. Integré modelos de IA para procesamiento y clasificación inteligente de documentos. Mi primer proyecto construyendo mi propio backend profesional.

Aprendizaje clave

Ampliar mi stack a React + Python me demostró que los principios de buena ingeniería son universales, independientemente del framework. La IA aplicada me abrió una nueva dimensión de posibilidades. La curiosidad es la herramienta más poderosa de un ingeniero.

open_source.

"El software que más me ha enseñado no lo escribí yo. Lo leí, lo entendí, y luego contribuí a mejorarlo."

Contribuir a open source no es altruismo — es ingeniería recíproca. Cada PR que abro en un proyecto público me obliga a entender código que no escribí, adaptarme a convenciones que no elegí, y comunicar decisiones técnicas a personas que no conozco. No existe mejor entrenamiento para un senior engineer.

Mis contribuciones se enfocan en developer tooling, component libraries y documentación técnica. Creo firmemente que la calidad del ecosistema define la calidad de los productos que construimos sobre él.

// Tipo de contribuciones

  • Bug fixes & performance patches

    Identificar y resolver issues en librerías que uso en producción. Si encuentro un bug, lo fixeo upstream.

  • Documentación y ejemplos

    La documentación es interfaz de usuario para developers. Mejorarla es una contribución de primer nivel.

  • Plugins y extensiones

    Desarrollo de plugins para herramientas del ecosistema, desde ESLint rules hasta Vite plugins.

  • Code review en PRs públicas

    Revisar código ajeno es contribuir. Feedback constructivo y técnicamente sólido ayuda a toda la comunidad.

filosofía.

La complejidad es deuda

Cada abstracción añadida es un costo de mantenimiento. Mi trabajo es encontrar el nivel mínimo de abstracción que resuelve el problema real, no el teórico. Refactorizar hacia la simplicidad es más difícil que sobre-ingeniar, y mucho más valioso.

Los frameworks cambian, los fundamentos no

Invierto más tiempo entendiendo cómo funciona el browser que memorizando APIs de frameworks. Cuando entiendes el event loop, el rendering pipeline y el modelo de memoria, cualquier framework es una herramienta más — no una identidad.

Performance es empatía

Optimizar no es un ejercicio técnico narcisista. Es respetar el tiempo y el dispositivo de cada persona que usa lo que construyo. Ese usuario con conexión 3G en un dispositivo de gama baja merece la misma experiencia que el CTO con su MacBook Pro.

El código es comunicación

Escribo código para humanos, no para compiladores. Naming explícito, funciones pequeñas con propósito claro, tests que cuentan historias. Si necesitas un comentario para explicar qué hace tu código, tu código necesita reescribirse.

Feedback loops cortos

Desde hot reload hasta CI en cada push, cada segundo de espera es fricción que mata la calidad. Optimizo obsesivamente los ciclos de feedback del equipo: builds rápidos, tests que corren en segundos, deploys automatizados.

Mentoría como multiplicador

Un senior que no hace crecer a su equipo no es senior — es un IC con más años. Code reviews como teaching moments. Pair programming como herramienta de transferencia de criterio. Documentar decisiones, no solo diseños.

contacto.

¿Tienes un proyecto que necesita criterio técnico real?
¿Tu equipo necesita a alguien que no sólo escriba código?

Hablemos. Sin humo. Sin buzzwords. Solo ingeniería.