Introducción
Las entrevistas de system design suelen intimidar, especialmente para quienes buscan roles tech remotos en dólares, y nunca han enfrentado este tipo de prueba. Pero no es cuestión de adivinar respuestas ni memorizar diagramas: se trata de pensar en cómo construir, desde cero, sistemas escalables y robustos. Acá te doy consejos prácticos, basados en experiencia real, para que llegues con claridad y confianza.
¿Qué Esperan los Entrevistadores?
Tu misión: mostrar cómo abordarías un problema de arquitectura real.
- Entender requisitos técnicos y de negocio
- Detectar trade-offs (decisiones de diseño)
- Pensar en escalabilidad, resiliencia y performance
- Saber comunicar tu proceso, no solo el resultado
No buscan un súper-experto. Quieren ver cómo razonas y priorizas.
Cómo Arrancar: Clarifica y Modela
Antes de tirar diagramas, escucha y pregunta. En las mejores entrevistas, los primeros minutos son lo más importante.
- Pide detalles: "¿Cuáles son los usuarios esperados?", "¿Qué volumen de datos manejaremos?", "¿Hay requisitos de latencia o consistencia?"
- Enumera lo que entendiste y define el alcance. No des por sentado nada.
Ejemplo concreto: Si te piden diseñar un sistema tipo "Messenger", pregunta:
- "¿Chats 1-1 o grupales?"
- "¿Mensajes multimedia o solo texto?"
- "¿Disponibilidad global o solo LATAM?"
Esto demuestra que te importa el contexto real.
De lo Simple a lo Complejo: Estructura Tu Respuesta
Siempre empieza con un diseño muy básico y luego agrégale capas.
- Haz un esquema inicial: Backend, frontend, base de datos.
- Justifica tus elecciones: "Acá usaría un database SQL porque…"
- Agrega capas: Caching, balanceadores, cola de mensajes.
Esto ayuda a que la conversación fluya y el entrevistador te dé feedback. Muestra que puedes iterar, no solo soltar respuestas de memoria.
Herramientas Mentales: Trade-Offs y Justificaciones
En una entrevista real, te desafiarán con preguntas del tipo: "¿Cómo escalas esto si tienes millones de usuarios?" o "¿Qué pasa si la base de datos se cae?"
Pensá así:
- ¿Vertical u horizontal scaling?
- ¿Consistencia vs disponibilidad (CAP theorem)?
- ¿Cómo harías failover? ¿Reintentos?
No tengas miedo de tomar decisiones. Justifica: "Prefiero este enfoque porque…" y admite posibles problemas: "Esto podría romperse si…"
Cómo Comunicar: Diagrama y Resume
No necesitas tools fancy ni pizarras (especial para entrevistas remotas). Usá papel, una tablet, o Google Jamboard. Lo importante es:
- Crear un diagrama de flujos simple
- Nombrar componentes clave, flechas para el tráfico
- Habla mientras dibujás: "Este microservicio recibe..."
Resume tu diseño al final: "El sistema tiene estos puntos fuertes y estos riesgos. Para mitigarlos, podríamos…"
Qué Leer y Practicar Antes
Para preparar en serio (no sólo en teoría):
- Sistemas reales: Lee cómo Amazon, Netflix y Twitter resolvieron problemas de escala
- Haz mock interviews con amigos, usando problemas clásicos (URL shortener, feed de redes sociales, sistema de notificaciones)
- Repasa básicos: CAP theorem, sharding, caché, balanceo de carga
No memorices: practica explicar ideas en voz alta y dibujarlas rápido.
Ejemplo Real de Respuesta
Supón que te piden diseñar un "sistema para subir y compartir imágenes" tipo Instagram.
1. Pregunto: "¿Cuántos usuarios esperan? ¿Cuál es el tamaño promedio de imagen? ¿Cuánto tráfico diario?"
2. Diseño inicial: Backend (API REST), frontend simple, base de datos SQL para metadatos.
3. Agrego almacenamiento en S3 (o similar) para los archivos reales.
4. Justifico caché para thumbnails y CDN para servir imágenes rápido.
5. Hablo de escalado horizontal para la API, balanceadores para ingresar tráfico.
6. Menciono posibles problemas: "Si S3 cae, los uploads fallarán. Podríamos tener un sistema de reintentos o backups."
Este tipo de respuesta, clara y estructurada, es lo que buscan.
Consejos para LATAM y Roles Remotos
En entrevistas para empresas de EEUU/Europa:
- Muestra awareness de problemas de geo-distribución: "¿Cómo optimizamos para usuarios en distintos países?"
- Sé conciso pero explícito (evita jergas locales)
- Si el inglés es una barrera, practica describir sistemas en inglés, aunque sea básico
Aclara tus fortalezas: "He trabajado sistemas con miles de usuarios simultáneos en LATAM, por eso el tema de escalado lo suelo tratar…"
En resumen
Prepárate para preguntar, estructurar, dibujar y justificar. Habla de decisiones, riesgos y cómo las solucionarías. Te hará ver como alguien que realmente puede crear sistemas complejos, no solo memorizar respuestas.