Pregunta de entrevista para Desarrollador full stack

Diseña un sistema de notificaciones que envíe correos y alimente un feed dentro de la aplicación.

Qué evalúa el entrevistador, cómo estructurar tu respuesta y un ejemplo hablado que puedes adaptar.

Respuesta rápida

Escribe la notificación en una tabla como fuente de verdad, y luego encola un trabajo de entrega por canal para que un proveedor de correo caído nunca bloquee el feed de la aplicación. Haz los trabajos idempotentes y reintenta con retroceso exponencial hacia una cola de mensajes muertos. Sirve el feed desde esa tabla, empujando actualizaciones por socket o sondeando al recuperar el foco. Añade preferencias por usuario y resúmenes para que nadie reciba veinte correos por hora.

Por qué lo preguntan los entrevistadores

Esta es una pregunta de diseño que toca modelado de datos, colas, fallos de terceros y criterio de producto a la vez, que es exactamente la superficie full stack. El entrevistador quiere verte separar el registro de la entrega, gestionar el fallo parcial y pensar en la experiencia de usuario ante el volumen. Mencionar preferencias y resúmenes demuestra que consideras el producto y no solo las tuberías.

Cómo estructurar tu respuesta

  • Separa el registro de la notificación de la entrega por canal.
  • Describe la cola, los reintentos y la gestión de fallos.
  • Explica cómo lee y se actualiza el feed dentro de la aplicación.
  • Cubre preferencias, agrupación y bajas.

Ejemplo de respuesta

Ejemplo hablado, en primera persona

Modelaría una tabla de notificaciones indexada por usuario con un tipo, una carga útil, una marca de tiempo de creación y otra de lectura, y trataría esa fila como la verdad. Crear una notificación es una única escritura más encolar trabajos de entrega, uno por canal, así que si el proveedor de correo está caído el feed de la aplicación sigue funcionando y el correo se reintenta después. Cada trabajo lleva una clave de idempotencia estable formada por el id de la notificación y el canal, así que un reintento no puede enviar dos veces. Los reintentos usan retroceso exponencial y acaban en una cola de mensajes muertos tras unos pocos intentos, con una alerta, porque un fallo silencioso de correo es de esos bugs de los que te enteras por un cliente. El feed en sí es una lectura paginada simple sobre esa tabla, con los contadores de no leídos cacheados, y empujo los elementos nuevos por server sent events o simplemente vuelvo a pedirlos cuando la pestaña recupera el foco. En el lado de producto, las preferencias viven por usuario y por tipo, los tipos de mucho volumen se agrupan en un resumen diario y cada correo lleva una baja en un clic que de verdad escribe en esas preferencias.

¿Tienes esta entrevista a la vuelta de la esquina? GhostPilot escucha tu llamada en vivo, detecta la pregunta en cuanto la hacen y pone una respuesta estructurada en tu pantalla en tiempo real. Pruébalo en tu próxima entrevista de práctica, o coge un Session Pass de $29, sin suscripción, para la de verdad.

Mira cómo funciona

Preguntas de seguimiento que puedes esperar

  • ¿Cómo deduplicarías diez eventos idénticos en un minuto?
  • ¿Cómo te aseguras de que una baja se respete en todas partes?
  • ¿Qué usarías para la cola y por qué?

Más preguntas para Desarrollador full stack

Tu entrevistador hará su propia versión de esta. Pega la descripción real del puesto en el Question Predictor gratuito y obtén las 20 preguntas que ese puesto tiene más probabilidades de hacerte, con lo que cada una busca en realidad.

Predecir mis preguntas

Ensaya las preguntas difíciles antes de que te las hagan

Practica con un copiloto en vivo y entra preparado. Un Session Pass de $29 te lleva a través de la entrevista sin suscripción y sin ataduras.

Consigue GhostPilot