¿Cuáles son algunas de las preguntas típicas de las entrevistas de diseño para los ingenieros de software?

Aquí hay unas cuantas que recuerdo de mis escapadas a las entrevistas:

  1. Diseño de instagram o algún tipo de feed de contenido. Esta es realmente SUPER común, debo haberla recibido 3 o 4 veces en varias empresas. Es bastante común y es probablemente lo que los entrevistadores que son demasiado perezosos para llegar a una mejor pregunta preguntarán.
  2. Diseño de tipo de cabeza / autocompletar. También he recibido ésta múltiples veces, a veces con ligeras variaciones. Por lo general se basa en una estructura de datos Trie. Esta es una gran práctica!
  3. Diseñar un bus de mensajería (apache kafka/zeromq/rabbitmq). Usted podría conseguir algo como esto si usted está entrevistando para un papel de software orientado a la infraestructura. Esta es una gran pregunta que puede dar lugar a muchas áreas de enfoque diferentes y sub-preguntas.
  4. Diseñar una caché LRU. Por lo general, se reduce a la implementación de una lista doblemente enlazada para obtener la eliminación en tiempo constante de los elementos utilizados menos recientemente cuando la caché está llena.
  5. Diseñar una caché distribuida. Una vez más, podría ser para un papel que es infra-orientado. También se puede tomar en muchas direcciones diferentes.
  6. Diseñar tablas de base de datos/almacén de datos. Esto podría ser para un rol más orientado a la ingeniería de datos, pero también es común para los SWE dado que un buen diseño de datos es tremendamente importante.

Aquí hay algunos que NO he visto personalmente, a pesar de ser generalmente aceptados como comunes:

  1. Diseñar un acortador de URL
  2. Diseñar una tienda web/sitio de comercio electrónico

¡Espero que esto ayude! Estoy dispuesto a apostar que los 4-5 primeros cubrirán la MAYORÍA de sus entrevistas de diseño de sistemas, y para los que no cubren, el conocimiento que se obtiene de su estudio debe transferir bien a las diferentes variaciones de las preguntas.