C1 · Avanzado · 6 lecciones
Entrevista de system design en inglés
Aclarar requisitos, estimar en voz alta y defender una arquitectura. Estas son las frases, la gramática y los ejemplos que usarás de verdad, explicados en español.
Aclarar requisitos
Los mejores candidatos preguntan antes de diseñar.
Frases clave
| Inglés | Español |
|---|---|
| Before I dive in, could I clarify a few requirements? | Antes de meterme de lleno, ¿podría aclarar algunos requisitos? |
| Do you know roughly how many daily active users we expect? | ¿Sabes más o menos cuántos usuarios activos diarios esperamos? |
| Should I assume reads heavily outnumber writes? | ¿Asumo que las lecturas superan con creces a las escrituras? |
Gramática · Preguntas indirectas
Could you tell me / Do you know + wh- / if + sujeto + verbo
Suenan más profesionales que las directas. El orden vuelve al de la afirmación: how many users we expect, no how many users do we expect.
Could you tell me how long the data needs to be kept?
¿Me podrías decir cuánto tiempo hay que guardar los datos?
💡 Should I assume…? te permite avanzar dejando claro que es una hipótesis.
Así lo dirías
Mark: Design a chat system like Slack. Where would you start?
Tú: Before I dive in, could I clarify a couple of things? Roughly how many users do we expect, and which features matter most for a first version?
En pregunta indirecta no se invierte: how many users there are. Y “could I clarify…” abre la conversación de forma profesional.
Estimar en voz alta
Cálculos aproximados explicados con claridad.
Frases clave
| Inglés | Español |
|---|---|
| Assuming each URL takes about 500 bytes, that's 50 gigabytes a day. | Si cada URL ocupa unos 500 bytes, son 50 gigas al día. |
| That works out to roughly 1,000 writes per second. | Eso sale a unas 1.000 escrituras por segundo. |
| Let's round it up to keep the maths simple. | Redondeemos hacia arriba para simplificar las cuentas. |
Gramática · Estimaciones
Assuming (that)… · That works out to roughly… · round up / down
Declara la hipótesis, haz la cuenta y di el resultado aproximado. Lo que se evalúa es el razonamiento, no la precisión.
Assuming 10 million users, that works out to roughly 100 requests per second.
Si suponemos 10 millones de usuarios, sale a unas 100 peticiones por segundo.
💡 “Order of magnitude” = orden de magnitud: we're in the order of terabytes.
Así lo dirías
Mark: How many requests per second should we plan for?
Tú: Assuming 100 million requests a day, that works out to roughly 1,200 per second. Let's plan for peaks of three to four times that.
“100 million requests” sin of, y “per second”. Mencionar los picos demuestra criterio.
Ordenar tu razonamiento
Pon el foco en lo que importa.
Frases clave
| Inglés | Español |
|---|---|
| What I'd do first is put a cache in front of the database. | Lo primero que haría es poner una caché delante de la base de datos. |
| What really matters here is consistency. | Lo que de verdad importa aquí es la consistencia. |
| It's the write path that worries me most. | Lo que más me preocupa es el camino de escritura. |
Gramática · Frases de énfasis (cleft sentences)
What I'd do is + verbo · What matters is + nombre · It's X that…
Separan la frase en dos para destacar una parte. Muy útiles para guiar al entrevistador.
What I'd optimise first is the read path.
Lo primero que optimizaría es el camino de lectura.
💡 What I'd do first is (to) add a cache: el to es opcional.
Así lo dirías
Mark: What's the most important part of this design?
Tú: What matters most here is the read path. Reads outnumber writes by a hundred to one, so that's where I'd focus.
“What matters most is…” estructura la respuesta. “Reads are very much” no es natural: outnumber.
Matizar las alternativas
Reconoce los costes de tu propia decisión.
Frases clave
| Inglés | Español |
|---|---|
| That said, it adds operational overhead. | Dicho esto, añade carga operativa. |
| It depends on whether we can tolerate stale reads. | Depende de si podemos tolerar lecturas desactualizadas. |
| I'd lean towards eventual consistency here. | Aquí me inclinaría por la consistencia eventual. |
Gramática · Matizar
That said · Having said that · It depends on whether… · I'd lean towards…
Muestran que ves los dos lados. That said y having said that introducen el contrapunto de lo que acabas de decir.
Kafka would scale well. That said, I'd lean towards a simpler queue for now.
Kafka escalaría bien. Dicho esto, por ahora me inclinaría por una cola más simple.
💡 I'd lean towards = me inclinaría por (sin sonar categórico).
Así lo dirías
Mark: SQL or NoSQL for the message store? Defend your choice.
Tú: I'd lean towards a wide-column store like Cassandra, because writes are heavy and the access pattern is simple. That said, we'd lose easy joins, so analytics would need a separate pipeline.
“It depends” solo no responde. Elige (I'd lean towards), justifica y reconoce el coste (That said…).
Cuellos de botella
Habla de límites y de cómo escalaría el sistema.
Frases clave
| Inglés | Español |
|---|---|
| The bottleneck would be the primary database. | El cuello de botella sería la base de datos principal. |
| If traffic doubled, we'd need to add read replicas. | Si el tráfico se duplicara, necesitaríamos réplicas de lectura. |
| If we'd partitioned the data earlier, we wouldn't have this problem now. | Si hubiéramos particionado los datos antes, ahora no tendríamos este problema. |
Gramática · Condicionales para escalar
if + pasado → would · mixto: if + had + participio → would + verbo (ahora)
Segundo condicional para escenarios hipotéticos. El mixto une una causa pasada con una consecuencia presente.
If we had chosen a queue, the API wouldn't be blocked now.
Si hubiéramos elegido una cola, la API no estaría bloqueada ahora.
💡 If we'd = if we had (no “if we would”).
Así lo dirías
Mark: Where is the bottleneck in your design, and how would you deal with it?
Tú: The bottleneck would be the primary database. If our user base doubled, I'd add read replicas and move hot keys into a cache.
Para un escenario hipotético, segundo condicional: if… doubled, I'd add. Sin will detrás de if.
Diseña un acortador de URLs
Requisitos, estimación, diseño, cuellos de botella y cierre.
Frases clave
| Inglés | Español |
|---|---|
| Let me summarise the design before we wrap up. | Déjame resumir el diseño antes de terminar. |
| With more time, I'd look into analytics and rate limiting. | Con más tiempo, miraría las analíticas y la limitación de peticiones. |
| The main risk is hot keys on popular links. | El principal riesgo son las claves calientes en los enlaces populares. |
Gramática · Cerrar la entrevista
Let me summarise… · With more time, I'd… · The main risk is…
Resume en tres frases, señala el principal riesgo y di qué harías después. Deja una impresión ordenada.
Let me summarise: a cache, a key-value store and async analytics. With more time, I'd add rate limiting.
Resumo: una caché, un almacén clave-valor y analíticas asíncronas. Con más tiempo, añadiría limitación de peticiones.
💡 Wrap up = terminar, cerrar una reunión o una conversación.
Así lo dirías
Mark: Give me a 30-second summary of your design.
Tú: To summarise: a stateless service generates short codes, a key-value store holds the mappings, and a cache handles the hot links. The main risk is hot keys, and with more time I'd add rate limiting.
Estructura el resumen y menciona un riesgo. “Scales well”, no “scales good”.