Atlasingeniería

Inglés técnicoEntrevistas e influencia — SeniorTema 2Senior

Narrar un diseño de sistemas en inglés

Una entrevista de diseño son cuarenta y cinco minutos hablando sin parar en inglés sobre algo que todavía no existe. Se sobrevive con un guion de cinco tramos y un puñado de frases para pensar en voz alta.

La entrevista de diseño de sistemas es, en inglés, la más exigente de todas: no hay código que hable por vos, no hay respuesta correcta y hay que hablar durante cuarenta minutos seguidos mientras dibujás.

Lo que la hace manejable es que el recorrido es siempre el mismo. Si tenés el guion de los cinco tramos y las frases de cada transición, el idioma deja de ser el problema y podés usar la cabeza para el diseño, que es lo que se está evaluando.

Los cinco tramos

Plantilla

System design walkthrough

1. Clarify (5 min)

"Before I start designing: who uses this, how many of them, and what does success look like? Is this read-heavy or write-heavy?"

Preguntar antes de diseñar es parte de lo que se evalúa. Quien empieza a dibujar cajas en el minuto uno ya perdió la mitad de los puntos.

2. Scope and scale (5 min)

"So: 10 million users, about 100 reads per second at peak, writes are much rarer. Let's say we need p99 under 200ms."

Repetir los números en voz alta fija los supuestos y da la excusa perfecta para verificar que entendiste bien el enunciado.

3. High-level design (10 min)

"At a high level: clients hit an API, which reads from a cache in front of the database. Writes go through a queue so the API stays fast."

Primero el dibujo entero y simple, después el detalle. Empezar por el detalle deja al entrevistador sin mapa.

4. Deep dive (15 min)

"The interesting part is the feed. Let me go deeper there — the choice is between fan-out on write and fan-out on read."

Suele elegirlo el entrevistador; si no, elegí vos la parte con una decisión de verdad y decí por qué esa.

5. Trade-offs and what breaks (10 min)

"If the cache goes down, we serve from the database and latency triples. That's acceptable for an hour, not for a day — so we'd need…"

El tramo que separa a un senior: qué se rompe, qué se degrada y qué se monitorea. Casi nadie llega acá por gastar el tiempo en las cajas.

Los tiempos son aproximados y el entrevistador los va a mover. Lo que importa es no saltearse el primero ni quedarse sin el último.

Antes de seguir, predecí

Te dan un problema de diseño de sistemas y arrancás dibujando la arquitectura. ¿Está bien?

Las frases de cada tramo

MomentoFórmula
Pedir requisitosBefore I design anything: what are we optimizing for — latency, cost, or consistency?
Fijar un supuestoI'll assume 10 million users and mostly reads. Let me know if that's off
Anunciar el dibujoLet me draw the boxes first and then go deeper where it matters
Bajar a un componenteLet me zoom in on the write path — that's where the interesting decision is
Comparar dos opcionesThere are two ways to do this: X, which is simpler but…, and Y, which…
ElegirI'd go with X for now, because at this scale the extra complexity of Y doesn't pay off
Reconocer un límiteThis falls over at about 10x — at that point we'd need to shard by tenant
Pensar en voz altaLet me think about this out loud for a second…
Volver atrásActually, let me revise that — if writes are this rare, the queue is overkill
CerrarTo summarize: API, cache, queue, and a worker. The main trade-off is staleness for speed
«Actually, let me revise that» es una de las frases más valoradas de toda la entrevista: cambiar de opinión con un motivo es exactamente lo que hace alguien senior.
Se dice asíSuena aMejor
I would use KafkaSolución antes que problemaWrites are bursty, so I'd put a queue in front — Kafka or SQS, depending on what we already run
It dependsEvasiva, si queda ahíIt depends on the read/write ratio: if reads dominate, then…
This is the best architectureCierra la discusiónThis fits the constraints we listed; the trade-off is…
I don't knowSe corta la conversaciónI haven't worked with that directly. My guess would be X — is that the direction you're thinking?
We can scale it laterPromesa vacíaThis holds to about 10x; past that we'd shard by tenant, and the hard part would be the migration
Reconocer que no sabés algo y aun así proponer una hipótesis es una respuesta fuerte. Quedarse en «I don\'t know» deja al entrevistador sin nada que evaluar.

Practicalo

Reescribilo

El arranque de una entrevista de diseño que salta directo a la tecnología. Reescribilo —como si lo dijeras en voz alta— empezando por las preguntas que hay que hacer antes de dibujar nada.

ok so for a URL shortener I would use Kafka and Cassandra and Redis, and also a load balancer, and maybe Kubernetes. Kafka is good for scale. Then we have the API that writes to Cassandra.

Lo que cambió no es el vocabulario técnico: es que el original respondía antes de saber la pregunta.

  • What are we optimizing for?

    /wɒt ə wiː ˈɒptɪmaɪzɪŋ fɔː/ · suena como uót ar ui óptimaising for

    Error común: decir «optimaizíng» corriendo el acento al final

  • Let me think out loud

    /let miː θɪŋk aʊt laʊd/ · suena como let mi zink áut láud

    Error común: decir «tink»: la th es /θ/

  • The trade-off here is

    /ðə ˈtreɪdɒf hɪər ɪz/ · suena como de tréidof jir is

    Error común: acentuar «tradeóf»

  • Eventually consistent

    /ɪˈventʃuəli kənˈsɪstənt/ · suena como ivéncholi konsístent

    Error común: decir «eventuáli», a la española

    Ojo con el falso amigo: «eventually» es «finalmente», no «eventualmente».

  • At this scale

    /ət ðɪs skeɪl/ · suena como at dis skéil

    Error común: decir «eskéil», con e inicial

«Eventually» es el falso amigo más caro de una entrevista de diseño: «eventually consistent» significa que converge, no que a veces es consistente.

Lo que preguntan sobre esto

En la práctica

Cierre

Autoevaluación

¿Lo entendiste?

¿Qué va antes de dibujar la primera caja?
¿Por qué conviene pensar en voz alta?
¿Qué significa que alguien diga «actually, let me revise that»?
¿Qué significa «eventually consistent»?