¿Qué es un forward deployed engineer? Respuesta de primera mano
Un forward deployed engineer trabaja junto a quien tiene el problema, construye la solución y la despliega. Qué hace, en qué se diferencia y cómo contratarlo.
Notas de problemas reales que he resuelto — Next.js y React, AWS Amplify Gen 2, autenticación y modelado de datos, rendimiento web y la práctica de construir software con IA — recopiladas en orden cronológico.
Un forward deployed engineer trabaja junto a quien tiene el problema, construye la solución y la despliega. Qué hace, en qué se diferencia y cómo contratarlo.
Dos recetas de Kiro Workflows convierten mi pipeline issue -> staging -> main en pasos de agentes. El validador encontro dos bugs que el JSON ocultaba.
Amplify Hosting elige Node 18 o 20 en silencio, y el runtime SSR sigue al build. Cómo lo descubrí y el pin con .nvmrc y nvm que ya usan todos mis proyectos.
Amplify Gen 2 da a cada rama su propia URL de Lambda, así que Stripe necesita un endpoint por rama. Las mías no tenían ninguno. Cómo lo encontré y lo arreglé.
Search Console decía que no podía leer el sitemap. El problema real: cada canonical apuntaba al host de preview de Amplify. Auditoría, solución y reglas.
Un despliegue de Amplify Gen 2 falló con TS2307 por amplify_outputs.json con todo en verde en local. La causa era el sistema de archivos, no el compilador.
Seis compilaciones fallidas al llevar Next.js 16 a Amplify SSR: lockfile, límite de 220 MB, xz ausente, usuario sin root, layer incompatible — resueltas.
Cómo resolver el error inotify_add_watch al ejecutar el sandbox de Amplify Gen 2 en Linux: no es falta de disco, es el límite de observadores de archivos.
Una Lambda que necesita acceso a Cognito y además es controlador de datos crea una dependencia circular. Ponle resourceGroupName: 'auth' en su definición.
Las Lambdas con package.json propio necesitan npm ci antes de que esbuild las empaquete: añade un paso preBuild por función en amplify.yml y excluye amplify/**.
Los atributos de un user pool de Cognito son inmutables tras crearlo: un cambio de auth rompe el despliegue. Elimina el stack, redespliega y defínelos antes.
Corrige 'Can't resolve amplify_outputs.json': ejecuta npx ampx pipeline-deploy en la configuración de compilación y adjunta AdministratorAccess-Amplify.
Para arreglar 'useForm is not exported from react-hook-form' en Next.js, agrega 'use client' al componente cliente que envuelve el formulario.
Analítica web propia, privada y gratuita: cómo adapté la instalación de Umami a PlanetScale mediante Prisma y la desplegué en Vercel, sin sesgo de plataforma.
Recopila tus propias Core Web Vitals sin pagar un servicio RUM: repórtalas desde Next.js, guárdalas en PlanetScale mediante Prisma y ejecútalo todo en Vercel.
Siete recursos gratuitos sobre fundamentos de blockchain y finanzas descentralizadas, de MIT, Berkeley, a16z y Web3 Foundation, en formato académico y bootcamp.
Seis recursos gratuitos y aptos para principiantes para aprender Rust: videos, la documentación oficial y artículos que se complementan entre sí.
¿Rust (Solana) o Solidity (Ethereum) para contratos inteligentes? Comparación por habilidades transferibles, madurez, curva de aprendizaje y salarios.
Un patrón simple, usado en downshift y ReachUI, para que quien usa un componente o hook fije su estado inicial y pueda volver a él después.
Del labor-to-earn al learn-to-earn, participate-to-earn (Minds), create-to-earn (OpenSea, Audius) y juegos con propósito como Zeedz: un mapa de las opciones.
Traducción del artículo de Kent C. Dodds: React reutiliza el elemento del DOM entre renders; una key ligada al estado fuerza uno nuevo con el valor por defecto.
Con AWS DataStore, actualiza elementos independientes con Promise.all y map; cuando cada actualización depende de la anterior, usa for await...of en orden.
Cumple GDPR y la ley de California en Next.js: pon ad_storage y analytics_storage en denied, activa ads_data_redaction y anonymize_ip, y conserva GA4.
Apunta un dominio de Route 53 a Vercel: actualiza los nameservers o los registros A y CNAME con los valores de Settings / Domains y elige la redirección a www.