F4 — Diseño de sistemas
Lo que necesitas dominar: pensar en trade-offs (no hay soluciones, hay compromisos), escalabilidad horizontal, load balancing, caching, colas de mensajes, sharding y replicación de datos, CDN, y estimación de capacidad. En una empresa top el código es la mitad del trabajo; la otra mitad es diseñar y defender por escrito qué construir y por qué.
Este tema se aprende distinto a los demás: no con una sola charla, sino siguiendo canales que resuelven casos reales una y otra vez hasta que interiorizas los patrones.
Canales para seguir (empieza por acá)
- ByteByteGo — Alex Xu · gratis — diagramas claros y cortos de patrones de diseño de sistemas reales. El mejor para empezar y ver el patrón visualmente.
- Gaurav Sen — System Design · gratis — casos completos (diseña Uber, WhatsApp, un rate limiter) razonando trade-offs en voz alta.
- Hussein Nasser — Backend Engineering · gratis — protocolos, bases de datos y decisiones de backend a fondo, sin humo.
Libros y referencia
- Alex Xu — “System Design Interview” vol 1 y 2 · pago — el estándar práctico. Casos resueltos paso a paso con las estimaciones.
- The System Design Primer (GitHub) · gratis — referencia enorme y gratis: patrones, trade-offs, números que todo ingeniero debe saber.
- DDIA (Kleppmann) · pago — se cruza con F2; es la base de datos de todo diseño serio.
Para que no se quede en video
El mejor ejercicio de diseño no es “diseña Twitter”, es diseñar y defender por escrito un sistema tuyo. Ya lo empezaste: el design doc de scholar-rag (docs/07) donde justificaste cada decisión con su trade-off. Repite eso con otro de tus productos: escribe el documento que explica por qué esa arquitectura y no otra, con las alternativas que descartaste. Escribir el diseño es lo que te obliga a entenderlo.