Abre un documento PDF en una nueva pestaña. Los PDF pueden tener limitaciones de accesibilidad; se recomienda una versión HTML cuando esté disponible.
Casos de Estudio Arquitectónicos

Ingeniería de Componentes Hero

Arquitecturas de producción desglosadas con tokens fluidos clamp, proyección 3D acelerada por hardware y cumplimiento WCAG 2.2 Nivel AAA.

Campeonato Nacional de Programación CompetitivaAño: 2026 | Commit: fe28bef

Final Regional México ICPC 2026

Diseñé y construí la plataforma insignia bilingüe para la Final Regional México ICPC 2026 con sede en ESCOM IPN, con una ventana hero poligonal en perspectiva 3D, botones magnéticos con física de resortes y arquitectura fluida con cero CLS.

Astro 5React 19TypeScriptMotionWCAG 2.2 AAA
ICPC México

Regional ICPC México 2026

Los mejores programadores universitarios de México se miden por el título, los trofeos y un lugar en la Final Latinoamericana.

Estudiantes compitiendo en la Final Mexicana ICPC 2026
Final Mexicana 2026

Telemetría de Ingeniería Verificada y Métricas de Impacto

Contraste WCAG AAA
14.2:1
Relación de contraste verificada entre primer plano y superficie en tipografía principal.
Profundidad de Nodos DOM
< 420 nodos
Mantenido muy por debajo del presupuesto de rendimiento de 800 nodos en Lighthouse.
Desplazamiento Acumulado (CLS)
0.000
Cero desplazamiento visual mediante reserva de aspecto y fuentes de respaldo ajustadas.

Arquitecto Frontend Principal

Arquitectura Integral de Plataforma, Ingeniería de UI y Auditoría de A11Y

  • Diseñé e implementé la ventana Hero con un polígono biselado, inclinación 3D acelerada por hardware según el puntero y selección ponderada de fotos.
  • Desarrollé primitivas de botones magnéticos amortiguados por resorte con desactivación automática ante prefers-reduced-motion.
  • Establecí tokens fluidos estrictos basados en clamp() para tipografía y espaciado en inglés y español.
src/components/ui/magnet.ts
export function magnetVector(
  rect: { left: number; top: number; width: number; height: number },
  clientX: number,
  clientY: number,
  strength: number
): { x: number; y: number } {
  const centerX = rect.left + rect.width / 2;
  const centerY = rect.top + rect.height / 2;
  const dx = clientX - centerX;
  const dy = clientY - centerY;
  const distance = Math.hypot(dx, dy);
  if (distance === 0 || strength === 0) return { x: 0, y: 0 };
  const pull = strength / (distance + strength);
  return { x: dx * pull, y: dy * pull };
}
Plataforma de Entrenamiento Algorítmico IntensivoAño: 2026 | Commit: a49c21d

Training Camp México (TCMX) 2026

Diseñé la arquitectura web neo-brutalista de alto contraste para el Training Camp México 2026 en ITESO, introduciendo un emblema con fragmentación viewBox SVG en cuadrantes 2x2 y despliegue 3D secuencial.

AstroTailwind CSS v4SVG GeometryIntersectionObserverWCAG AAA
Secuencia: T a M a X a CSolapamiento Escalonado de 350ms

Fragmentación SVG en Cuadrantes y Despliegue 3D

Recorta un espacio vectorial unificado en cuatro celdas de perspectiva independientes (T, M, X, C) que se despliegan secuencialmente al entrar al viewport.

Telemetría de Ingeniería Verificada y Métricas de Impacto

Competidores Registrados
180+
Participantes de división nacional ICPC en categorías Inicial y Avanzada.
Cadencia de Despliegue
350 ms
Solapamiento calculado (500ms de duración menos 150ms de solape) para rotación 3D fluida.
Violaciones Pa11y y Axe
0
Cero fallos de accesibilidad en superficies claras y de alto contraste.

Ingeniero Principal de Sistemas de UI

Tokenización de Design System, Ingeniería de Movimiento SVG, Matriz de Horarios

  • Diseñé la coreografía de despliegue del emblema SVG en cuatro cuadrantes (T a M a X a C) con rebote elástico cubic-bezier.
  • Implementé activadores de viewport con IntersectionObserver y resolución instantánea de estado final para usuarios con reducción de movimiento.
  • Construí bloques semánticos de estadísticas con listas de definición y matrices responsivas de horarios con bordes de desfase sólido.
src/components/LogoTCMX.astro
.logo-tcmx {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  perspective: 800px;
  --anim-duration: 0.5s;
  --overlap: 0.15s;
  --stagger: calc(var(--anim-duration) - var(--overlap));
  --anim-easing: cubic-bezier(0.34, 1.56, 0.64, 1);
}
Mujeres Latinoamericanas en Programación CompetitivaAño: 2026 | Commit: 8c71e4a

Liga Competitiva CODEFEM 2026

Desarrollé como ingeniero único la plataforma trilingüe (ES, EN, PT) para la Liga Femenina Mexicana de Programación Competitiva, con un motor de fondo fluido Aurora Bézier cuadrático en SVG y un sistema de cuadrícula cartesiana 12x12.

AstroReactTypeScriptSVG Bezier MathTrilingual i18n

Motor Aurora Bézier Cuadrático Acoplado al Scroll

Genera cintas poligonales con desfase de vectores normales de 120 vértices por filamento, delegando el desenfoque gaussiano y máscaras a capas CSS aceleradas por GPU.

Telemetría de Ingeniería Verificada y Métricas de Impacto

Entrega Individual a Producción
11 días
Arquitectura completa de tokens de diseño, implementación frontend y pipeline de CI/CD.
Paridad Clave Trilingüe
100%
Validación automatizada en tiempo de compilación para ES, EN y PT, incluyendo texto alternativo de imágenes.
Vértices de Cinta Bézier
120 pts/cinta
Cintas poligonales desfasadas con vectores normales calculadas dinámicamente sin sobrecosto de canvas.

Staff Frontend Engineer & Designer Individual

Arquitectura Integral de Ciclo Completo, CI/CD Trilingüe i18n, Shaders SVG en GPU

  • Desarrollé el generador procedural de cintas Bézier cuadráticas de 150 puntos para el fondo AuroraFusion acoplado al scroll.
  • Delegué los filtros pesados de desenfoque SVG a capas CSS blur nativas compuestas por GPU y máscaras de gradiente lineal para telemetría a 60fps en móviles.
  • Diseñé scripts automatizados de pre-commit para verificar paridad estructural AST e i18n entre español, inglés y portugués.
src/components/ui/AuroraFusion.astro
const u = 1 - progress;
const strandY = u * u * startY + 2 * u * progress * cpY + progress * progress * targetY;
const meanderAmplitude = 280 * Math.pow(progress, 1.2);
const meanderOffset = Math.sin(progress * Math.PI * 4) * meanderAmplitude;
const strandX = stageWidth / 2 + meanderOffset + (pillarIndex - 1.5) * currentSpacing;