04 — Engineering Notes

Apuntes de ingeniería en producción.

TILs, snippets, debugging real y micro-artículos. Observaciones del trabajo diario con sistemas reales.

7 apuntes publicados
TIL 19 May 2026 · 1 min

SVG animateMotion: calcMode="paced" distribuye velocidad por distancia, no por tiempo.

calcMode="paced" mantiene velocidad constante en recorridos de distancia variable.

calcMode="paced" hace que la velocidad de animación sea proporcional a la distancia de cada segmento del path, no al tiempo. Ideal para flujos que recorren distancias desiguales.
SVG Animation
TIL 15 May 2026 · 4 min

Laravel Lazy Collections: procesar 500k rows sin explotar memoria.

cursor() + LazyCollection para streaming — la memoria se mantiene constante sin importar el volumen.

Encontré el límite de Eloquent migrando datasets grandes. User::all() cargaba todo en memoria y PHP reventaba. La solución fue cursor() + LazyCollection para procesar en streaming — la memoria se mantuvo constante sin importar el volumen.// ❌ explota con 500k rows
$users = User:
Laravel Performance Memory Eloquent
Debug 12 May 2026 · 3 min

N+1 en componentes Livewire: detectarlo con Debugbar y resolverlo con eager loading.

Cada re-render de un componente Livewire puede disparar N+1 si no usas with() en la consulta.

Cada re-render de un componente Livewire puede disparar N+1 si no usas with() en la consulta. Laravel Debugbar muestra las queries por render cycle. La solución es siempre eager loading en el método render().
Livewire N+1 Query
Debug 10 May 2026 · 3 min

Redis TTL no invalida cache entre requests en Laravel Octane.

En Octane el proceso PHP persiste entre requests. El TTL expira en Redis, pero el in-memory cache del worker sigue sirviendo datos stale.

En Octane el proceso PHP persiste entre requests. El TTL expira en Redis, pero el in-memory cache del worker sigue sirviendo datos stale sin consultarlo. Solución: usar Cache::store('redis') directamente en vez del driver por defecto, o deshabilitar el in-memory layer de Octane p
Redis Octane Cache
Observación 06 May 2026 · 2 min

CSS custom properties vs variables Sass: el caso donde las nativas ganan siempre.

Las CSS custom properties pueden cambiar en runtime. Las variables Sass no existen en producción.

Las CSS custom properties pueden cambiar en runtime (dark mode, temas dinámicos). Las variables Sass no existen en producción — se compilan a valores estáticos. Para cualquier sistema de tokens que necesite responder a JS o media queries, las nativas son la única opción.
CSS DX Design Tokens
Snippet 03 May 2026 · 2 min

Extender un Resource de Filament 3 sin modificar el vendor.

Con resolveRecordRouteBinding + panel extension puedes añadir páginas y acciones a cualquier Resource de plugin sin tocar su código.

Con resolveRecordRouteBinding + panel extension puedes añadir páginas y acciones a cualquier Resource de plugin sin tocar su código. Crea una clase que extienda el Resource del vendor y registra solo las páginas adicionales.
Filament PHP Extension
Micro 26 Apr 2026 · 5 min

¿Cuándo introduces una cola en tu app? La regla del segundo.

Si una operación tarda más de 1 segundo o puede fallar sin impactar al usuario, va a la cola.

Si una operación tarda más de 1 segundo o puede fallar sin impactar al usuario, va a la cola. Tres años de systems building han consolidado esa heurística. Correo, notificaciones, reportes, webhooks salientes — todo va a la cola. Lo que no: autenticación, validación, lectura de d
Architecture Queues Heuristics