Preguntas de entrevista con desglose de respuestas — Página 45 de 52
Explora la página 45 de los desgloses de preguntas y respuestas de entrevistas de Offer.cc con razonamiento, detalles de implementación, preguntas de seguimiento y fuentes públicas.
Entrevista técnica: ¿Cómo buscar un patrón con un arreglo de sufijos (Suffix Array)?
Convierte las consultas de subcadenas en texto fijo en dos búsquedas binarias sobre un arreglo de sufijos, con construcción, complejidad y casos de borde.
Entrevista de diseño de sistemas: ¿Cómo aislar a los inquilinos ruidosos y programar de manera equitativa?
Diseñe un servicio multi-tenant en torno a la identidad del inquilino, presupuestos de recursos y niveles de aislamiento, utilizando cuotas, colas justas y shuffle sharding para limitar el radio de impacto de un inquilino ruidoso.
Implementar un Event Emitter en JavaScript
Deriva un EventEmitter de JavaScript a partir de un contrato explícito, manejando registros duplicados, mutación de listeners durante el despacho, listeners once reentrantes y propagación de errores, para luego verificar la semántica con casos límite.
Entrevista de Backend: ¿Cómo proteger un servicio contra la sobrecarga?
Diseña la protección contra sobrecargas con señales de saturación, concurrencia acotada, descarte selectivo de carga (load shedding), degradación elegante y un bucle de recuperación controlado que preserve el trabajo útil ante un exceso de demanda.
Entrevista de SQL: Sesionizar eventos de usuario con un intervalo de inactividad de 30 minutos
Usa LAG, indicadores de límite y una suma acumulativa con ventana en PostgreSQL para sesionizar eventos, manejando el límite exacto de 30 minutos, el ordenamiento determinístico, los rangos de consulta, los datos tardíos y la verificación.
Cómo responder a “¿Cuál es tu producto favorito y cómo lo mejorarías?”
Construye una tesis de producto a partir de un recorrido de usuario y un balance explícito, y luego deriva una mejora a partir de un problema de usuario comprobable con una métrica de resultado y límites de control de riesgos.
Entrevista de Linux: ¿Cómo se diagnostica una terminación por OOM (OOM Kill)?
Confirma el alcance del OOM a partir del estado de salida, los eventos de cgroup y los registros del kernel, luego separa los cargos de memoria, distingue una fuga de un límite insuficiente y mitiga de forma segura.
Entrevista de código: Implementar un radix heap de enteros monótonos
Utilice el invariante de claves extraídas no decrecientes y cubetas basadas en el bit de mayor diferencia para construir una cola de prioridad de enteros y explicar el costo amortizado.
Entrevista de diseño de sistemas: Diseña un sistema de facturación de suscripciones
Diseña la facturación recurrente con una máquina de estados de suscripción, instantáneas inmutables de facturas, intentos de pago idempotentes, ordenamiento de webhooks, prorrateo, cobro de morosidad (dunning), conciliación y recuperación de derechos de acceso (entitlements).
¿Cómo implementar Promise.all con el orden y la semántica de fallos correctos?
Deriva una implementación de Promise.all a partir del contrato de iterables, cubriendo valores primitivos, thenables, entradas vacías, resultados ordenados y rechazo inmediato (fail-fast), para luego validarla con casos límite.
Entrevista de Backend: ¿Cómo resuelves el problema de la doble escritura (Dual-Write) entre base de datos y Message Broker?
Diseña un transactional outbox que haga duradera la intención del evento, y luego analiza fallas del relay, entregas duplicadas, ordenamiento por agregado, consumidores idempotentes y pruebas con inyección de fallas.
Entrevista de ciencia de datos: ¿Cómo validar un modelo de pronóstico de series temporales sin fuga de información (leakage)?
Trabaje hacia atrás desde el origen real del pronóstico para diseñar backtests con orígenes rodantes, aplique la disponibilidad de características, evalúe horizontes y ciudades por separado y reserve un holdout final para el pipeline seleccionado.
Entrevista para Product Manager: ¿Cómo diagnosticarías una caída del 15% en el DAU?
Utiliza la validación de métricas, el análisis de contribución absoluta, un embudo anidado y la evidencia cronológica para localizar una anomalía en el DAU y decidir si reparar datos, detener un despliegue o revertir cambios.
Entrevista de Linux: ¿Por qué el Load Average es alto cuando el uso de CPU es bajo y cómo diagnosticarlo?
Comienza con la contabilidad de tareas ejecutables (runnable) e ininterrumpibles en Linux, luego usa los estados R/D, PSI, wchan y métricas de subsistemas para diagnosticar una carga alta con bajo uso de CPU y verificar la solución.
Entrevista de código: ¿Cómo resolver conectividad dinámica offline con DSU con rollback?
Deriva una solución de conectividad dinámica offline a partir de union-find utilizando un segment tree sobre el tiempo y rollback, incluyendo eliminaciones, invariantes, casos límite y complejidad.
Entrevista de diseño de sistemas: Diseñar un API Gateway multirregión
Diseñe un API gateway para 300 servicios y 500 000 solicitudes pico por segundo, abarcando enrutamiento, autenticación, despliegue de configuración, fallas regionales, sobrecarga y observabilidad.
Entrevista de Backend: ¿Cómo almacenar contraseñas de forma segura y migrar hashes heredados?
Comience con la amenaza del descifrado fuera de línea (offline cracking) y luego diseñe los parámetros de Argon2id, credenciales versionadas, migración en el momento del inicio de sesión, manejo de cuentas inactivas, rotación de pepper y protección de capacidad.
Entrevista de SQL: Calcular usuarios activos móviles de 7 días
Calcula de forma exacta los usuarios activos móviles de 7 días usando un calendar spine, deduplicación usuario-día considerando la zona horaria correcta y una unión distinct a través de cada ventana previa; luego maneja huecos, eventos tardíos y escalamiento.
¿Cómo priorizarías solicitudes de funciones que compiten entre sí?
Compara solicitudes que compiten entre sí evaluando objetivos, restricciones duras, calidad de la evidencia, costo de la demora y costo de oportunidad; toma una decisión; y documenta compromisos, planes de contingencia y detonantes para su reconsideración.
Entrevista de redes: ¿Cómo resuelve HTTP/3 el bloqueo de cabeza de línea de HTTP/2?
Utilice una línea de tiempo de pérdida de paquetes para explicar el bloqueo TCP entre flujos en HTTP/2, el aislamiento de flujos de QUIC en HTTP/3 y las esperas que persisten en la retransmisión, el control de congestión, el control de flujo y QPACK.
Entrevista técnica de código: Implementar un árbol de intervalos para consultas de superposición
Aumente un árbol balanceado con los puntos finales máximos de los subárboles para responder consultas de superposición en línea y explique rotaciones, eliminación y complejidad.
Entrevista de diseño de sistemas: Diseñar un servicio de proximidad para lugares cercanos
Deriva un conjunto de candidatos geoespaciales, verificación de distancia exacta y paginación estable para un servicio de lugares cercanos que maneja límites de celdas, regiones calientes, invalidación de caché y fallas de fragmentos (shards).
Entrevista sobre PostgreSQL: ¿Cómo funcionan juntos MVCC y VACUUM?
Rastree la visibilidad de filas en PostgreSQL desde las instantáneas de MVCC a través de los horizontes de limpieza, autovacuum, reutilización de disco, diagnóstico de bloat, actualizaciones HOT y congelamiento de XID.
Entrevista de Ingeniería de Datos: ¿Cuándo Deberías Usar Procesamiento por Lotes, Micro-Lotes o Flujo Continuo?
Deduce cuándo usar procesamiento por lotes (batch), micro-lotes (micro-batch) o flujo continuo (stream) a partir de los plazos límite de las acciones de negocio; luego, valida la elección mediante presupuestos de latencia, revisiones de resultados, costo y verificación en la sombra (shadow verification).