Angular
Arquitecturas enterprise, signals, standalone components, RxJS avanzado, lazy loading estratégico, state management con NgRx/signals.
Arquitectura frontend robusta, interfaces que escalan y código que otros
disfrutan mantener.
Angular · React · Ionic
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.
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.
Arquitecturas enterprise, signals, standalone components, RxJS avanzado, lazy loading estratégico, state management con NgRx/signals.
Hooks patterns avanzados, server components, suspense boundaries, custom renderers, optimización de re-renders, micro-frontends.
Apps híbridas de alto rendimiento, Capacitor plugins nativos, offline-first patterns, optimización de bundle size, PWAs avanzadas.
Jest, Cypress, Playwright, Testing Library. TDD cuando suma valor. Tests que documentan comportamiento, no implementación.
Micro-frontends, module federation, monorepos con Nx, clean architecture, domain-driven design en frontend, dependency injection patterns.
Core Web Vitals, bundle optimization, tree shaking, code splitting, rendering strategies, profiling con DevTools, Lighthouse CI.
CI/CD pipelines, ESLint custom rules, Prettier, Husky, conventional commits, mono-repo tooling, Storybook, documentación técnica.
Design systems, CSS architecture (BEM/utility), animaciones performantes, accesibilidad WCAG, responsive design avanzado, Figma-to-code.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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í.
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.
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.
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.
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.
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 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.
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.
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.
"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.
Identificar y resolver issues en librerías que uso en producción. Si encuentro un bug, lo fixeo upstream.
La documentación es interfaz de usuario para developers. Mejorarla es una contribución de primer nivel.
Desarrollo de plugins para herramientas del ecosistema, desde ESLint rules hasta Vite plugins.
Revisar código ajeno es contribuir. Feedback constructivo y técnicamente sólido ayuda a toda la comunidad.
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.
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.
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.
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.
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.
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.
¿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.